导航
首页 常识
您的位置: 首页 > 常识 >

碰撞测试游戏(游戏制作中的AABB碰撞检测)

100次浏览     发布时间:2024-11-07 08:06:24    

AABB碰撞检测的原理:

  1. 任何碰撞体都是矩形的,并且四边相对画布是垂直和平行的。
  2. A的左边的位置小于B的右边的位置,B的左边小于A的右边。
  3. A的上边的位置小于B的下边的位置,B的上边边小于A的下边。

说起来有点绕,请看代码

function checkCollision(rect1, rect2) {
    // 检查两个矩形是否在水平方向上重叠
    const horizontalOverlap = rect1.left < rect2.right &&   rect2.left<rect1.right;

    // 检查两个矩形是否在垂直方向上重叠
    const verticalOverlap = rect1.top < rect2.bottom && rect2.top<rect1.bottom;

    // 如果两个矩形在水平和垂直方向上都重叠,则发生碰撞
    return horizontalOverlap && verticalOverlap;
}

优点:代码简单,运行效率高。
缺点:毕竟是矩形,有棱有角的,碰撞起来有点粗糙,不太适合不规则物体的碰撞检测。

所以Phaser3里有另外一个物理引擎MatterJS,它是OBB碰撞原理,能应对复杂的碰撞要求。

相关文章

冷水燃气热水器显示F4

2025-01-10 11:02:21