引子
在 Collision Detection 中对碰撞检测作了简单的介绍。在查询资料时,在 Github 上发现了 CollisionDetection 这个项目。查看之后,发现关于碰撞检测的讨论,由浅入深,很适合学习。在其基础上,做了 JavaScript 版本的实现。
以下示例未做兼容性检查,建议在最新的 Chrome 浏览器中查看。
Point/Point
这是示例页面。
最早的碰撞检测是检测两个点的碰撞。为了检测它们是否接触,我们只需要检查它们的 X 和 Y 坐标是否一样。
/*
* (x1,x2) 点的坐标
* (y1,y2) 点的坐标
*/
function checkPointPoint(x1,x2,y1,y2) {
if (x1 == x2 && y1 == y2) {
return true; // 发生碰撞
} else {
return false; // 没有碰撞