Javascript 击球测试球(物体)在击中棋盘之前被击中
我已经创建了一个函数来计算球对棋盘的击球次数。击球功能起作用,但它会在球击中棋盘之前计算击球次数 我做错什么了吗? //致命的Javascript 击球测试球(物体)在击中棋盘之前被击中,javascript,Javascript,我已经创建了一个函数来计算球对棋盘的击球次数。击球功能起作用,但它会在球击中棋盘之前计算击球次数 我做错什么了吗? //致命的 function hitTest(rect1, rect2) { if (rect1.x >= rect2.x + rect2.width || rect1.x + rect1.width <= rect2.x || rect1.y >= rect2.y + rect2.height || rect1.y + rect1.height &l
function hitTest(rect1, rect2) {
if (rect1.x >= rect2.x + rect2.width || rect1.x + rect1.width <= rect2.x
||
rect1.y >= rect2.y + rect2.height || rect1.y + rect1.height <= rect2.y) {
return false;
}
return true;
}
function doHitTest() {
"use strict";
//board vs ball
for (var i = balls.length - 1; i >= 0; i--) {
if (hitTest(bounceBoard, balls[i])) {
console.log("HIT");
stage.removeChild(balls[i]);
balls.splice(i, 1);
}
}
功能测试(rect1,rect2){
如果(rect1.x>=rect2.x+rect2.width | rect1.x+rect1.width=rect2.y+rect2.height | rect1.y+rect1.height=0;i--){
if(命中测试(弹跳板、球[i])){
控制台日志(“命中”);
舞台移除儿童(balls[i]);
球.拼接(i,1);
}
}
如果x
和y
分别是最左边和最上面的坐标,那么不清楚为什么需要为它们添加宽度和高度。如果(a.x=b.x+b.width),作为旁注,你的球是矩形的吗?听起来很奇怪。)使用BallbundingRects
或其他什么(这意味着球周围的正方形)听起来好一点。注意:我建议你适当地插入你的条件句,这将使你避免与操作符优先级相关的问题,并增加代码的可读性。