我正在尝试制作游戏pong(我的数学非常糟糕,我正在研究它)并尝试做弹跳球。
我试图计算击中墙壁或踏板后球的外出(反射)天使(墙壁总是水平的,踏板总是垂直的)
这是一张更好地展示它的图片:
这是我到目前为止所尝试的内容:
var m = (y2-y)/(x2-x);
var angle = (Math.atan(-m)*57.2957795);
但这似乎不起作用。
答案 0 :(得分:4)
由于障碍物始终是垂直或水平的,因此您无需进行任何角度计算。 如果将球的位置存储为(x,y)并将其速度存储为(v x ,v y ),则可以在每帧计算下一个位置(x + v x ,y + v y )
要从水平边框反弹,只需否定v y ,从垂直边框反弹否定v x 。