本文整理汇总了C++中Enemy::getLife方法的典型用法代码示例。如果您正苦于以下问题:C++ Enemy::getLife方法的具体用法?C++ Enemy::getLife怎么用?C++ Enemy::getLife使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Enemy
的用法示例。
在下文中一共展示了Enemy::getLife方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: removeAllEnemy
void EnemyLayer::removeAllEnemy(){
CCObject* obj;
CCARRAY_FOREACH(m_pAllEnemy1, obj){
Enemy* enemy = (Enemy*)obj;
if (enemy->getLife()>0) {
enemyBlowUp(enemy, enemy->getType());
}
}
示例2: removeAllSmallEnemy
void LayerEnemy::removeAllSmallEnemy()
{
CCObject *obj;
CCARRAY_FOREACH(m_psmallArray, obj)
{
Enemy *enemy = (Enemy *)obj;
if (enemy->getLife() >= 1)
{
smallEnemyBlowUp(enemy);
}
}
示例3: update
void LayerGameMain::update(float dt)
{
//单发子弹与小敌机碰撞
/*思路:
两次遍历(即两个for循环),第一次遍历子弹容器(_bulletVector),取出其第一个子弹,
第二次遍历小敌机容器(_smallVec)将这个取出的子弹与当前屏幕上所有的小敌机做碰撞检测,
如果检测到碰撞,再判断当前碰撞到的小敌机的生命值_life 若等于1,则小敌机失去生命值
再分别将当前的子弹和当前的小敌机加到容器 bulletToDel 和 smallToDel 中去,
当第一个子弹与屏幕上的敌机全部碰撞检测完以后,就把 bulletToDel 和 smallToDel
里面的对象全部删除*/
Vector<Sprite *> bulletToDel_Small;
for (auto bt : _bulletLayer->_bulletVector)
{
Sprite * bullet = bt;
Vector<Enemy *> smallToDel;
for (auto et : _enemyLayer->_smallVec)
{
Enemy * enemy = et;
if (bullet->getBoundingBox().intersectsRect(enemy->Get_BoundingBox()))
{
if (enemy->getLife() == 1)
{
enemy->loseLife();
bulletToDel_Small.pushBack(bullet);
smallToDel.pushBack(enemy);
_score += SMALL_SCORE;//加上小敌机的分数
_controlLayer->updateScore(_score);
}
}
}
for(auto et : smallToDel)//注意for循环的位置,要与创建时的语句在同一层
{
Enemy * enemy = et;
_enemyLayer->smallEnemyBlowup(enemy);//敌机爆炸(删除)
}
}
for (auto bt : bulletToDel_Small)//注意for循环的位置,要与创建时的语句在同一层
{
Sprite * bullet = bt;
_bulletLayer->removeBullet(bullet);//删除子弹
}
//单发子弹与中敌机碰撞
Vector<Sprite *> bulletToDel_Mid;
for (auto bt : _bulletLayer->_bulletVector)
{
Sprite * bullet = bt;
Vector<Enemy *> midToDel;
for (auto et : _enemyLayer->_midVec)
{
Enemy * enemyMid = et;
if (bullet->getBoundingBox().intersectsRect(enemyMid->Get_BoundingBox()))
{
if (enemyMid->getLife() > 1)
{
enemyMid->loseLife();
bulletToDel_Mid.pushBack(bullet);
}
if (enemyMid->getLife() == 1)
{
enemyMid->loseLife();
bulletToDel_Mid.pushBack(bullet);
midToDel.pushBack(enemyMid);
_score += MID_SCORE;
_controlLayer->updateScore(_score);
}
}
}
for(auto et : midToDel)
{
Enemy * enemyMid = et;
_enemyLayer->midEnemyBlowup(enemyMid);
}
}
for (auto bt : bulletToDel_Mid)
{
Sprite * bullet = bt;
_bulletLayer->removeBullet(bullet);
}
//单发子弹与大敌机碰撞检测
Vector<Sprite *> bulletToDel_Big;
for (auto bt : _bulletLayer->_bulletVector)
{
Sprite * bullet = bt;
Vector<Enemy *> bigToDel;
for (auto et : _enemyLayer->_bigVec)
{
Enemy * enemyBig = et;
if (bullet->getBoundingBox().intersectsRect(enemyBig->Get_BoundingBox()))
{
if (enemyBig->getLife() > 1)
{
enemyBig->loseLife();
bulletToDel_Big.pushBack(bullet);
}
if (enemyBig->getLife() == 1)
{
//.........这里部分代码省略.........