box2d 碰撞检测_游戏碰撞检测的实现

本文介绍了2D游戏中矩形和圆形的碰撞检测算法,适用于未使用独立物理引擎的游戏开发。矩形检测通过比较物体外接矩形是否重叠来判断,而圆形检测则计算两圆心距离与半径之和。更精确的碰撞检测算法和3D情况将在后续讨论。
摘要由CSDN通过智能技术生成

原标题:游戏碰撞检测的实现

碰撞检测对于大部分游戏而言必不可少,比如飞机发射的子弹是否击中了敌方、刀砍在怪物身上或者接触到僵尸的身体、投出去的篮球接触篮板和篮筐、汽车撞击、拾取物品等这些功能都需要使用碰撞检测。

游戏策划方面觉着理所应当的简单想法,在技术工作部分里需要细致详尽又复杂的程序才能实现。

对于采用独立物理引擎的游戏,游戏过程中的碰撞检测一般直接由物理引擎的具体模块功能完成计算。本文介绍的碰撞检测技术主要是用于没有采用独立物理引擎(如Havok、Bullet、ODE、JBox2D物理引擎)的2游戏,主要为了方便游戏开发初级者了解和学习。

下面说一下游戏内进行碰撞检测时通常采用的检测算法,为了快速了解我们这次直说最简单的两种2D游戏内的:矩形检测和圆形检测。

矩形检测算法是先给游戏内实体套上一个外接长方形,在进行游戏内两个物体见碰撞检测时,只需要检测它们的外接矩形是否发生了重叠:

具体检测的算法如下:

1、取两个要碰撞的物体左上角坐标(x1,y1)和(x2,y2)以及物体宽度w和高度h。

2、声明4个变量maxX、minX、maxY、minY,依次赋值为两物体中x坐标的较大值、x坐标的较小值、y坐标的较大值、y坐标的较小值。

3、判断maxX﹤minX+w、且maxY﹤minY+h,如果满足以上条件,说明两个物体发生了碰撞。

上述算法是按照检测物体宽度和高度相同的最简单情况考虑的,但是基本上游戏内的各种物体基本上都是面积大小不同的:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值