差不多写完今天这个博客,这个捕鱼游戏就完成了吧,也不能说做得很好,因为我博客里写的也很简单,完全根据博客来的话只能写出一个简单的游戏轮廓,话不多说,直接进入主题吧,也就是今天讲的炮弹和鱼的碰撞。
可以说是很关键的部分,对这个游戏分析吧,首先炮弹有它的类型,比如1号炮,2号炮......鱼也有它的类型,比如小黄鱼,乌龟,鲸鱼......
然后再分析,当鱼和炮弹碰撞上的时候,鱼会生成一个死亡动画然后消失,炮弹会生成渔网,然后消失,当然渔网和鱼的死亡动画也会消失。
在这里要判断鱼是否和炮弹碰撞到就要用到一个api,那就是getBoundingBox()
void GameScene::update(float dt){
for (int i = 0; i < fishVec.size(); i++){
for (int j = 0; j < bulletVec.size(); j++){
if (fishVec.at(i)->getBoundingBox().intersectsRect(bulletVec.at(j)->getBoundingBox())){
makeyuwang(type, bulletVec.at(j)->getPositionX(), bulletVec.at(j)->getPositionY());
remove2(bulletVec.at(j));
return;
}
}
}
这个用法就是精灵->getBoundingBox().intersectsRect(精灵2->getBoundingBox())。
getBoundingBox()就是获取矩形框,然后intersectsRect就是用于判断两个矩形框是否发生碰撞。
这就是具体的用法。。