JS封装一个碰撞检测函数
程序员文章站
2024-03-16 20:37:52
...
碰撞检测函数
objA和objB是两个对象 两个对象中的数据 要能够描述出一个矩形
objA和objB 一定要有四个属性 x,y,width,height
function isCollide(objA,objB){
// 如果发现 只要x,y,width,height中出现了 undefined 我们就要主动的抛出一个异常 程序不再执行
if(isUndefined(objA.x) || isUndefined(objA.y) || isUndefined(objA.width) || isUndefined(objA.height) ||
isUndefined(objB.x) || isUndefined(objB.y) || isUndefined(objB.width) || isUndefined(objB.height))
{
//主动抛出错误
throw new Error('参数错误!'+ ' ' + JSON.stringify(objA) + ' ' +JSON.stringify(objB));
}
var centerA=getCenter(objA);
var centerB=getCenter(objB);
// 2个矩形的几何中心点 在x,y轴上的距离,必须都小于 两个矩形的宽/高之和的1/2,这种情况下 两个就发生了碰撞,函数输出true
return Math.abs(centerA.x-centerB.x) < (objA.width + objB.width)/2 &&
Math.abs(centerA.y-centerB.y) < (objA.height + objB.height)/2;
}
2个矩形的几何中心点 在x,y轴上的距离,必须都小于 两个矩形的宽/高之和的1/2,这种情况下 两个就发生了碰撞,函数输出true
上一篇: 2d转换
推荐阅读
-
JS封装一个碰撞检测函数
-
一个函数理解js的this和闭包
-
php 怎么获取一个时间的毫秒时间类似js的Date.UTC函数
-
js下写一个事件队列操作函数_javascript技巧
-
javascript - js 或 php 有没有一个 函数 判断 一个url ,如果404跳的A地址 如果不是404 直接请求url 就行
-
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
-
奉献出一个封装的curl函数 便于调用(抓数据专用)
-
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数_PHP
-
原生JS实现动画函数的封装
-
php 怎么获取一个时间的毫秒时间类似js的Date.UTC函数