天天看点

小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(5)

5.死亡判定

终于到这个项目的最后一篇了,死亡判定,也就是让敌机和我们的飞机进行碰撞

碰撞之后的结果呢,自然就是GG思密达啦(GameOver)

如何进行检测呢?很简单,遍历敌机集合,因为飞机只有一个,所以不用遍历飞机啦

ok,直接上代码

void Game::update(float t)
{
    //敌机与子弹碰撞检测
    //..
    //敌机与飞机

        for (int j = ; j < allenemy.size(); j++) {
            Enemy * nowenemy = allenemy.at(j);
            Rect er(nowenemy->getPositionX() , nowenemy->getPositionY() , , );
            Rect pr(player->getPositionX() , player->getPositionY() ,  , )
            if (er.intersectsRect(pr)) {
            //GameOver
            GameOver()
                //移除敌机
                nowenemy->removeFromParent();
                allenemy.eraseObject(nowenemy);

                i--;
                break;
            }
        }
    }
           

OK,这样整个飞机大战就完成了,当然还有一些小东西,例如音效音乐的添加,分数的添加、爆炸动画粒子特效等等。。大家都可以去加上,还有不同类型的子弹等等,都可以去尝试着写一写。

Ps:飞机大战已更新完毕

——————9秒学院学习日志

继续阅读