0
嗨,大家好我在我的Ogre問題上遇到問題。我不確定這是否是問這個問題的最佳地點,但我也可以。 這裏是我爲了創造敵人的二維數組(一個太空侵略者遊戲二維的敵人在創作時崩潰
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);
}
下使代碼的樣本是有錯誤我得到
在0x59a6ad4e未處理的異常( msvcp100d.dll)在C00146012項目 - 三維空間Invaders.exe:0000005:訪問衝突讀取位置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);
任何和所有幫助將不勝感激:)
你能告訴我們哪一行是128行嗎? – Floris
(讓我們假設)我在瀏覽器中關閉了圖像。我怎麼知道錯誤信息? – 2013-08-22 14:54:12
它與你的問題沒有關係,但是你的串流操作可以用2行而不是7來完成。而且我看不到'ent'聲明在哪裏。那應該是說'enemyEnt'? –