在我嘗試使用Ogre創建我的第一個3D遊戲時,我開始編寫一個通用的「對象」類。 構造:封裝類中的遊戲對象
Object(const char* mesh, Ogre::SceneManager*& sm)
{
...
_sn = sm->getRootSceneNode()->createChildSceneNode(_sn_name);
_ent = sm->createEntity(_ent_name, mesh);
_sn->attachObject(_ent);
...
}
_SN是一個場景結點*和_ent實體*(私營)。 問題是沒有任何東西會被吸引到屏幕上! 但是,如果使用:
Ogre::Entity *map = mSceneMgr->createEntity("map","map.mesh");
Ogre::SceneNode *sc = mSceneMgr->getRootSceneNode()->createChildSceneNode("mapNode");
sc->attachObject(map);
外的一類,對象被拉伸,一切正常。
我的方法出了什麼問題,我該如何解決?
爲什麼你使用指針參考作爲參數?有什麼特別的理由這麼做? – 2012-08-12 18:37:27
爲了避免不必要的複製(?)。使用簡單的指針/參考進行嘗試,不起作用。 – user1233963 2012-08-12 18:47:25
所以你做得很差/錯。任一選項都可以避免複製,您當然不需要兩者都可以。 – 2012-08-12 18:48:45