在这段代码中,我想创建一个Enemy
对象,并将它的指针推送到两个不同的位置:作为我所有可绘制对象树中的子项(Enemy
是可绘制的) ,以及一个名为Enemy*
的{{1}}列表,可以跟踪所有活动的mEnemies
个对象,而无需遍历我的图表。
Enemy
当我的代码尝试绘制可绘制节点的图形时,它会以上述函数中指定的正确位置成功。但是,当我为void World::spawnEnemy(float x, float y, EnemyType::ID type, IState::ID state)
{
Enemy* enemy(new Enemy(mTextures, type, state));
enemy->setPosition(x, y);
mEnemies.push_back( enemy );
mSceneLayers[Air]->attachChild( enemy );
}
创建迭代器auto itr
并尝试访问mEnemies
时,调试器会说它是(**itr)
,具有完全无意义的值,我得到了我试图访问时出现seg错误。
对于referance,Enemy
代码如下所示:
attachChild
其他相关代码在我的另一个问题中:Cannot figure out Seg Fault, lots of detail provided