void HelloWorld::RemoveBullets()
{
CCMutableArray<GameBullet* > *arrayTemp = new CCMutableArray<GameBullet* >;
CCMutableArray<GameBullet* >::CCMutableArrayIterator iter;
for (iter = m_arrBullets->begin(); iter != m_arrBullets->end();++iter)
{
GameBullet*pBullet = (*iter);
CCPoint pt = pBullet->getsprite()->getPosition();
CCSize size = pBullet->getMySize();
if (pt.y > m_sizeWindow.height + size.height/2)
{
arrayTemp->addObject(pBullet);
}
}
for (iter = arrayTemp->begin(); iter != arrayTemp->end(); iter++)
{
GameBullet *pBullet = (*iter);
m_arrBullets->removeObject(pBullet);//删除被打中的敌人从数组中
this->removeChild(pBullet, true);//删除被打中的敌人
}
arrayTemp->release();
}
CCMutableArray的删除一般要借助另一个CCMutableArray来实现删除。
本文介绍了一个游戏中的子弹管理方法,通过使用两个CCMutableArray来实现游戏中子弹的高效删除操作。具体步骤包括检查每个子弹的位置,如果超出窗口高度则将其标记为待删除,并最终从数组和游戏中移除。
148

被折叠的 条评论
为什么被折叠?



