当前位置: 首页>>代码示例>>C++>>正文


C++ Enemy::getLife方法代码示例

本文整理汇总了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());
        }
    }
开发者ID:hbflyhbfly,项目名称:AirPlane,代码行数:8,代码来源:EnemyLayer.cpp

示例2: removeAllSmallEnemy

void LayerEnemy::removeAllSmallEnemy()
{
	CCObject *obj;
	CCARRAY_FOREACH(m_psmallArray, obj)
	{
		Enemy *enemy = (Enemy *)obj;
		if (enemy->getLife() >= 1)
		{
			smallEnemyBlowUp(enemy);
		}
	}
开发者ID:dalechngame,项目名称:mygame,代码行数:11,代码来源:LayerEnemy.cpp

示例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)
				{
//.........这里部分代码省略.........
开发者ID:DreamZL,项目名称:PlaneFight,代码行数:101,代码来源:LayerGameMain.cpp


注:本文中的Enemy::getLife方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。