ORGE乱记一

      今天,基本上好像看得进展不大.唉,NovodeX phisic engine搞了半天,也没什么进展,更不用说把整进OGRE,两边都没什么了解,只好过春天燕尘那边更新了再说,这边就先不摸索了,浪费时间...然后Crazy Eddie's GUI System (CEGUI)这边也一直编译通不过,应该是路径设置出问题了,以前都没关心过.NET中的输出目录呀,工作目录什么的,一直都默认了,现在发现好多地方改了就出问题了,这个还好用用就熟悉喽. 所以,这二块现在实在难道太大了,先不看了,跟人家走就行.还是先看OGRE中的渲染的一些调用先.
  嗯,看看这些,确实能明白不少,然消息侦听,用场景树,以前写什么小游戏时根本没想过还有这种东东,这样确实让各部分独立了很多,CODE时爽多了... 然后昨天晚上看<C++沉思录>中,那个讲句柄例子也,也是受益颇多.以前学C++,学OO,以为说学完封装,学会继承,学完多态就会了,实际上根本没入门,为什么要这样用,好处在哪只在书在见过那么了了的几句话,根本没真明白.看了里面的例子才知,原来C++还可以这样写呢... 嗯,反正一只菜鸟,赶紧学就是喽,其实那个例子还没完全明白呢,明白了再写心得吧. 
  把今天OGRE看的一些东东贴下,也算一个小交待,呀,没几天就要回家喽...其实很想回家的,XIXI,回家,就可以找同学,找小白玩喽:)

OGRE 的场景组织方式,就像一棵树,树有根、有枝干、有叶子和果实。最基本的两个概念,是场景节点 (SceneNode) 和实体 (Entity) 。场景节点就像树枝,实体就像枝头的果实。我们可以画个概念图:

场景节点就像根、树干和树枝,它可以再分枝,或者挂上果实(实体);
实体就像果实,它总是被绑定 (Attach) 在一个场景节点上并且总是处于分枝的末端;

场景节点控制实体的位置、方向、缩放等空间属性;
实体具有自己所使用的模型、材质、阴影、骨骼、动画、渲染状态等各种个体属性;

整个场景节点拥有唯一的一个根场景节点(RootSceneNode),如果一个实体不是根场景节点的“后代”,也就是所谓的“游离”实体或被绑定在一个"游离"节点上的实体,它不会被显示。

创建实体用:
    Entity* entObject = mSceneMgr->createEntity( "object", "ninja.mesh" );
    Entity* entGround = mSceneMgr->createEntity( "ground", "GroundPlane" );
获取场景根节点:
    SceneNode* rootNode = mSceneMgr->getRootSceneNode();
创建子节点:
    SceneNode* groundNode = rootNode->createChildSceneNode();
将实体绑定在子节点:
    groundNode->attachObject( entGround );
设定子节点的坐标:
    objectNode->setPosition( Vector3( 0, -100, 0 ) );
取得要控制实体的节点:
    SceneNode*      mSceneNode;     // 场景节点
    mSceneNode = mSceneMgr->getSceneNode( "objectNode" );       // 获取角色对象的场景节点
控制角色移动:
    if (mInputDevice->isKeyDown( KC_I ) && timeDelay <= 0) // I键的按下
    {
        mSceneNode->translate( Vector3( 0, 0, -walkSpeed ) ); // 控制角色位移
 mSceneNode->rotate(Vector3(0,1,0),Radian(0.05)); // 控制角色放转
        timeDelay = 0.02;
    }




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值