我正在制作一个简单的游戏,你知道,你在底部移动了矩形,并且你正在摧毁顶部的矩形球,上下起伏如果你错过了球,你输了......我不会知道那个游戏的名字。唯一的问题是角度,我不知道如何计算角度,非常感谢你!
答案 0 :(得分:1)
您可以使用
获得任意两点之间的弧度角度angle_in_rads = Math.atan2(p1.y-p2.y,p1.x-p2.x)
这个公式应该适用于几乎任何语言(我认为它们几乎都有相当于atan2)
如果你愿意,你可以很容易地将它转换为度数(你可能不想用度数)
angle_in_deg = angle_in_rads*180/Math.PI
弹跳你真的不需要计算你只需要反转弹跳轴的任何角度
if rect.p0.x < ball.x < rect.p1.x and ball.y > rect.p0.y:
ball.vy = ball.vy * -1 # bounce off paddle
if ball.x + ball.vx > game.width or ball.x + ball.vx < 0:
ball.vx = ball.vx * -1 # bounce off the side walls
答案 1 :(得分:0)
你的意思是Breakout?
我认为Pygame是一个很好的起点,查看他们的examples,他们甚至已经有一些Breakout clones。
如果你有球的运动矢量,你可以用pygame.math.Vector2
计算角度(甚至提供rotate
方法,用于计算球从球员控制的球杆反弹的方式)