PyGame球(矩形)和矩形之间的角度

时间:2015-07-20 16:36:35

标签: python

我正在制作一个简单的游戏,你知道,你在底部移动了矩形,并且你正在摧毁顶部的矩形球,上下起伏如果你错过了球,你输了......我不会知道那个游戏的名字。唯一的问题是角度,我不知道如何计算角度,非常感谢你!

2 个答案:

答案 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方法,用于计算球从球员控制的球杆反弹的方式)