在我尝试使用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