在Javascript
网络游戏开发中,将两种碰撞
检测方法封装成矩形和圆形,以便于碰撞检测的发展。
{捕获一个}的偶然
情况操作 {注意:对代码}没有进行
优化。
演示
角色攻击
区域冲突检测
防御案例
矩形区域碰撞检测
*矩形区域碰撞检测
*由
管理员
创建的14-4-7。
*作者:标记
* /
函数(x,y,_width矩形,_height){
这个;
这个,y = y;
This.width = _width;
this.height = _height;
/冲突检测(如
参数)
this.intersects =
功能(obj){
无功a_x_w = Math.abs((这个X +,宽度 / 2)-(obj。x + obj。宽度 / 2));
无功b_w_w = Math.abs((这个宽度+ obj。宽度) / 2);
无功a_y_h = Math.abs((这。Y +,身高 / 2)-(obj。Y + obj。身高 / 2));
无功b_h_h = Math.abs((这个高度+ obj。高度) / 2);
如果(a_x_w < b_w_w a_y_h < b_h_h)返回true;
否则返回false;
}
}
圆形区域碰撞检测
*圆形区域碰撞检测
*由管理员创建的14-4-7。
*作者:标记
*
* /
函数的RadiusRectangle(x,y,半径){
这个;
这个,y = y;
this.radius =半径;
/冲突检测(如参数)
this.intersects =功能(RR){
无功maxradius = rr.radius + this.radius;
两/已知直角边的长度,根据公式:csup2;= asup2;+ bsup2;计算斜边。
创建一个math.abs(RR,x,x);
var b = math.abs(RR,y,y);
VaR的距离= math.sqrt(Math.pow(A,2)+ math.pow(B,2));中心距 / /计算
如果(距离< maxradius){
返回true;
}
返回false;
}
}
以上是本文的全部内容,希望能有助于您理解Javascript。