Vector容器的简单用法

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();
  }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值