2D敌人阵列在创建时崩溃
2D arrary of enemies crashes on creation
大家好,我的Ogre问题有问题。我不确定这是否是问这个问题的最佳地点,但我也可以。以下是我制作的代码示例,用于创建2D敌人阵列(用于太空入侵者游戏
for(int i = 0; i < 5; i++) //Manages the YPOS coordinate of the enemy
{
for(int j = 0; j < 5; j++) //Manages the YPOS coordinate of the enemy
{
stringstream ss;
ss << j;
std::string pos = ss.str();
ss.clear();
ss << i;
pos += "," + ss.str();
std::string enemyName = "Enemy " + pos;
Ogre::Entity * enemyEnt = mSceneMgr->createEntity(enemyName, "razor.mesh");
Ogre::SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode (enemyName+"ParentNode");
Ogre::SceneNode *node2 = node1->createChildSceneNode(enemyName+"Node");
enemyEnt->setMaterialName("Examples/Chrome");
mSceneMgr->getSceneNode(enemyName+"Node")->attachObject(ent);
int multiplier = 100;
if(j < 3)
{
multiplier *= -1;
}
if(j == 3)
{
multiplier = 0;
}
Vector3 initialPos;
initialPos.x = (j+1) * multiplier;
initialPos.y = 0;
initialPos.z = 3000 - ((i+1) * multiplier);
enemyVec.push_back(new Enemy(mSceneMgr,node2, initialPos, j, i, 200 ));
}
}
enem->setEnemies(enemyVec);
}
以下是错误,我正在获取
C00146012项目中0x59a6ad4e(msvcp100d.dll)处出现未处理的异常-3D Space Invaders.exe:0xC0000005:读取位置0xcccccd24时发生访问冲突。
当调试时,它会将其带到xutility 中的这段代码中
#if _ITERATOR_DEBUG_LEVEL == 2
if (_Myproxy != 0)
{ // proxy allocated, drain it
_Lockit _Lock(_LOCK_DEBUG);
for (_Iterator_base12 **_Pnext = &_Myproxy->_Myfirstiter; *_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter)
(*_Pnext)->_Myproxy = 0;
_Myproxy->_Myfirstiter = 0;
}
#endif /* _ITERATOR_DEBUG_LEVEL == 2 */
然而,我知道错误就在这一行:
enem->setEnemies(enemyVec);
如有任何帮助,我们将不胜感激:)
在这行中,您想对实体和场景节点做什么
enem->setEnemies(enemyVec);
请记住,您只是在循环的范围内声明了Nodes和Entity,由于您没有制作它们的完整副本并将其粘贴到分配的内存中,因此您的向量可能指的是在其生存期内自动分配的节点,以及无论您要对它们做什么,它的未定义行为。因此,可能有些状态在他们的记忆中仍然是一样的,Ogre可以处理它们,但会出错,因为这并不完全是它应该是的
即使Ogre正在处理这件事,你也应该通知
对于每个
i;j == 3
初始位置是相同的。因此,这可能是指Ogre错误,如果pos与initialPos有任何关系,那么您就有非唯一字符串,其中需要唯一字符串。
相关文章:
- 试图创建流或fopen时程序崩溃
- 将对象创建为全局/静态对象会崩溃,而本地对象不会崩溃
- ZeroMQ 在使用 std::thread 创建工作线程时崩溃
- 亲.InsertAtHead() 调用创建程序崩溃
- 程序在为链表创建推送函数时崩溃
- OCCI 19.3.0:创建连接崩溃并出现OCCIUTF16
- 程序在 UpdateWindow 上崩溃时,使用 SS_OWNERDRAW 动态创建 CStatic
- C++帐户创建程序崩溃
- 是否可以以编程方式创建迷你转储文件而不会崩溃?
- 程序在尝试创建和访问二维矢量时崩溃
- 创建对象数组c++时崩溃
- 创建 COM 接口指针在开发计算机上有效,但会导致其他计算机上的应用程序崩溃
- 创建新元素崩溃后,tinyxml2 xmldocument parse
- QTimer在构造函数或静态中创建时会崩溃
- 在 PPC 中创建线程时崩溃
- o字符串流对象创建导致我的程序崩溃
- C vs Java:无尽的循环创建对象仅崩溃C
- 创建'new'实例可以解决析构函数崩溃问题?
- 创建OpenGL 4.3上下文崩溃GLX
- 共同创建实例在 32 位上崩溃