举例代码如下:
 //游戏子弹与怪物的碰撞检测,当发生碰撞时从游戏中去除相碰撞的子弹与怪物
    //getEemyArray()为定义在PlayScene类中得到怪物数组的函数,  下面语句体在子弹类中Bullet 继承 CCSprite
    for(int i = 0; i < PlayScene::sharedPlay()->getEnemyArray()->count(); i ++)
    {
        Enemy* enemy = (Enemy*) PlayScene::sharedPlay()->getEnemyArray()->objectAtIndex(i);
        if(this->boundingBox().intersectsRect(enemy->boundingBox()))
        {
            PlayScene::sharedPlay()->getEnemyArray()->removeObject(enemy); //从怪物数组中去除对象
            PlayScene::sharedPlay()->removeChild(enemy, true); //从游戏的当前层上去除相撞怪物
            PlayScene::sharedPlay()->removeChild(this, true); //从游戏当前层上去除相撞子弹 this代表当前Bullet
        }
    }


//判断主角与怪物碰撞
    for(int i = 0; i < PlayScene::sharedPlay()->getEnemyArray()->count(); i++)
    {
        Enemy* enemy = (Enemy*)PlayScene::sharedPlay()->getEnemyArray()->objectAtIndex(i);
        if(this->boundingBox().intersectsRect(enemy->boundingBox()))
        {
            PlayScene::sharedPlay()->getEnemyArray()->removeObject(enemy); //从数组中移除
            PlayScene::sharedPlay()->removeChild(enemy,this); //从当前层中移除
           
        }
    }

 

相关文章:

  • 2021-08-15
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-03
猜你喜欢
  • 2022-12-23
  • 2021-11-20
  • 2022-01-23
  • 2021-09-13
  • 2022-12-23
  • 2022-01-05
相关资源
相似解决方案