我有一组都是“矩形”的对象。我也有一个圆圈是对象。我用于重力的方程式是:
newYPos = oldYPos + prevFallingSpeed + 重力
基本上,我将重力率添加到前一帧中圆圈“下降”的像素数,然后将其添加到最后一帧中圆圈的位置。
我正在使用以下代码检测球的任何部分是否在任何物体内:
for(var i = 0; i < objects.length; i++){
if(ball.x > objects[i].x - ball.r && ball.y > objects[i].y - ball.r && ball.x < ball.r + objects[i].x + objects[i].w && ball.y < ball.r + objects[i].y + objects[i].h){
alert('test');
gSy = (-1 * gSy);
}
}
代码检查圆的坐标加上或减去半径是否大于盒子壁的顶部/左侧位置并且小于盒子壁的右侧/底部位置。
有一次球在物体内部,但我从来没有收到警报。我已经尝试了我能想到的一切。希望我只是犯了一些我看不到的愚蠢错误......
如果您想弄乱我的代码或不理解变量,这是一个 jsfiddle: