冲突检测如何工作(JavaScript)?

时间:2019-05-16 02:48:51

标签: javascript collision detection

您能否解释一下,以便白痴可以理解,这种碰撞检测如何用于2D破砖游戏?我无法想象它的工作原理。有一个桨拍击中了球,球打破了砖头,此代码中的碰撞检测是针对球从墙壁上弹起的。

if(x + dx > canvas.width-ballRadius || x + dx < ballRadius) {
    dx = -dx;
}
if(y + dy > canvas.height-ballRadius || y + dy < ballRadius) {
    dy = -dy;
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果下一个位置(currentPosition(x|y)+方向(dx|dy)大于可用空间(所有空间减去球的半径),或者小于球的半径,则反转方向。
在第一种情况下,我们在右侧或底部的位置过多,在第二种情况下,我们在左侧或顶部的位置过多。

因此,下一个x += dxy += dy实际上会向后退,并且永远不会撞墙。

顺便说一句,为了获得真实的打击,您想要了解弹入墙壁的程度,以便在弹跳后获得正确的位置。

答案 1 :(得分:0)

两个if语句都相同,所以我只解释第一个。

month = input("What month are you drawing for? ")

year = input("What year are you drawing for? ")

import pandas
df = pandas.read_csv('month year'.csv)

相同
if(x + dx > canvas.width-ballRadius || x + dx < ballRadius) {
    dx = -dx;
}