对于基本的捕鱼游戏设计思路(六)——碰撞检测

差不多写完今天这个博客,这个捕鱼游戏就完成了吧,也不能说做得很好,因为我博客里写的也很简单,完全根据博客来的话只能写出一个简单的游戏轮廓,话不多说,直接进入主题吧,也就是今天讲的炮弹和鱼的碰撞。

可以说是很关键的部分,对这个游戏分析吧,首先炮弹有它的类型,比如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就是用于判断两个矩形框是否发生碰撞。

这就是具体的用法。。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值