有没有更简单的方法来检测HTML画布上的冲突?

问题描述

在HTML画布上的图像和形状之间是否有更简便的2D冲突检测方法?每当我要检测碰撞时,我都厌倦了键入以下if语句。

if (a.x < b.x + b.width && a.x + a.width > b.x && a.y < b.y + b.height && a.y + a.height > b.y) {
    // rectangle a and rectangle b are colliding
}

此外,该算法只能检测2个矩形之间的碰撞,而不能检测2个圆或一个圆和一个矩形之间的碰撞。

解决方法

据我所知,没有专门为2D碰撞而构建的库,但是如果您想查看一个很酷的2D物理库,请查看something.js,否则,如果您不想使用a整个图书馆,请查看:https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection。如果您正在制作平台游戏,则应查看我在javascript中制作的这些平台游戏的物理原理:https://platformerphysics.netlify.app