5.死亡判定
终于到这个项目的最后一篇了,死亡判定,也就是让敌机和我们的飞机进行碰撞
碰撞之后的结果呢,自然就是GG思密达啦(GameOver)
如何进行检测呢?很简单,遍历敌机集合,因为飞机只有一个,所以不用遍历飞机啦
ok,直接上代码
void Game::update(float t)
{
//敌机与子弹碰撞检测
//..
//敌机与飞机
for (int j = 0; j < allenemy.size(); j++) {
Enemy * nowenemy = allenemy.at(j);
Rect er(nowenemy->getPositionX() , nowenemy->getPositionY() ,40 , 50);
Rect pr(player->getPositionX() , player->getPositionY() , 47 , 56)
if (er.intersectsRect(pr)) {
//GameOver
GameOver()
//移除敌机
nowenemy->removeFromParent();
allenemy.eraseObject(nowenemy);
i--;
break;
}
}
}
OK,这样整个飞机大战就完成了,当然还有一些小东西,例如音效音乐的添加,分数的添加、爆炸动画粒子特效等等。。大家都可以去加上,还有不同类型的子弹等等,都可以去尝试着写一写。
Ps:飞机大战已更新完毕
——————9秒学院学习日志