Ogre 学习框架代码^__^

Code:
  1. #include "Ogre/ExampleApplication.h"   
  2. #include "ExampleFrameListener.h"   
  3.   
  4. class Example25FrameListener :public Ogre::FrameListener   
  5. {   
  6. public:   
  7.   
  8.     Example25FrameListener(Ogre::SceneNode* node)   
  9.     {   
  10.         _node = node;   
  11.     }   
  12.   
  13.   
  14.     bool frameStarted(const Ogre::FrameEvent &evt)   
  15.     {   
  16.         _node ->translate(Ogre::Vector3(10,0,0)*evt.timeSinceLastFrame);   
  17.         return true;   
  18.     }   
  19.   
  20.     Example25FrameListener()   
  21.     {      
  22.            
  23.         FrameListener = NULL;   
  24.     }   
  25.     ~Example25FrameListener()   
  26.     {   
  27.         if (FrameListener)   
  28.         {   
  29.             delete FrameListener;   
  30.         }   
  31.     }   
  32.   
  33. private:   
  34.     Ogre::SceneNode* _node;   
  35.     Ogre::FrameListener* FrameListener;   
  36. };   
  37.   
  38. class Example :public ExampleApplication   
  39. {   
  40. public :   
  41.     void createScene()//just realize virtual function createScene 就可以了   
  42.     {   
  43.         Ogre::Plane plane(Vector3::UNIT_Y,-10);   
  44.   
  45.         Ogre::MeshManager::getSingleton().createPlane("plane",   
  46.             ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,plane,   
  47.             1500,1500,200,200,true, 1,5,5,Vector3::UNIT_Z);   
  48.            
  49.         Ogre::Entity* ent =    
  50.             mSceneMgr->createEntity("LightPlaneEntity","plane");   
  51.   
  52.             //  Attation please; must add this dialog;   
  53.         mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);   
  54.   
  55.         ent->setMaterialName("Examples/BeachStones");   
  56.   
  57.         Ogre::Light* light = mSceneMgr->createLight("Light1");   
  58.         light->setType(Ogre::Light::LT_DIRECTIONAL);   
  59.         light->setDirection(Ogre::Vector3(1,-1,0));   
  60.   
  61.   
  62.         Ogre::SceneNode * node = mSceneMgr->createSceneNode("Node1");   
  63.         mSceneMgr->getRootSceneNode()->addChild(node);   
  64.   
  65.         Ogre::Entity* Sinbad = mSceneMgr->createEntity("Sinbad","Sinbad.mesh");   
  66.   
  67.         _SinbadNode = node->createChildSceneNode("SinbadNode");   
  68.         _SinbadNode->setScale(3.0f,3.0f,3.0f);   
  69.         _SinbadNode->setPosition(Ogre::Vector3( 0.0f, 4.0f, 0.0f));   
  70.         _SinbadNode->attachObject(Sinbad);   
  71.         mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE);   
  72.   
  73.     }   
  74.     //  Overrode the createCamera () function    
  75.        
  76.     void createCamera()   
  77.     {   
  78.         mCamera = mSceneMgr->createCamera("MyCamera1");   
  79.         mCamera->setPosition(0,100,200);   
  80.         mCamera->lookAt(0,0,0);   
  81.         mCamera->setNearClipDistance(5);   
  82.     }   
  83.   
  84.     void createFrameListener( )   
  85.     {   
  86.        Example25FrameListener * Framelistener= new Example25FrameListener(_SinbadNode);   
  87.         mRoot->addFrameListener(Framelistener);   
  88.     }   
  89.   
  90.   
  91. private:   
  92.     Ogre::SceneNode* _SinbadNode;   
  93.   
  94.   
  95. };   
  96.   
  97.   
  98. //  Listoner Framwork   
  99.   
  100. int main(void)   
  101. {   
  102.   
  103.     Example app;   
  104.     app.go();   
  105.     return 0;   
  106. }   
  107.   

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值