Vector<Enemy*>enemyList;
//创建飞机
void InGameLayer::creatEnemy(float delta)
{
auto enemy = Enemy::create();
float xpos = CCRANDOM_0_1()*s.width;
int type = CCRANDOM_0_1() * 3 + 1;
enemy->initEnemy(type);
enemy->setPosition(xpos, s.height + enemy->getContentSize().height);
this->addChild(enemy);
enemyList.pushBack(enemy); //往容器中加数据
/*debug*/
// enemy->setPosition(s.width / 2, s.height / 2);
// enemy->blowUp();
}
//跟新飞机的行为 : 移动
void InGameLayer::updateAllEnemy()
{
Enemy * enemy;
for (int i = enemyList.size()-1; i >= 0; i--)
{
enemy = enemyList.at(i);
enemy->move();
//当飞机出了屏幕后 从父容器中移除 从vector中移除
if (enemy->getPositionY()<-enemy->getContentSize().height) //这必须倒着遍历, 否着会移除第I个后边所有的
因为移除第I个后第i+1个就变成的第I个
{
enemyList.erase(i); //移除第i个数据 有3个同名函数,具体请移步Vector类中查看
enemy->destory();
}
}
}