Python 在玩pygame的破砖游戏中,有没有办法在每次碰到桨时提高速度
我正在做一个破砖游戏,我想在它每次碰到桨的时候提高速度。但由于某种原因,当我在速度中加1时,它会增加很多倍。 这是我的密码Python 在玩pygame的破砖游戏中,有没有办法在每次碰到桨时提高速度,python,pygame,Python,Pygame,我正在做一个破砖游戏,我想在它每次碰到桨的时候提高速度。但由于某种原因,当我在速度中加1时,它会增加很多倍。 这是我的密码 if ball.colliderect(paddle): y_positive = False y_negative = True ball_speed += 1 这是因为它们的碰撞盒重叠的每一个时钟信号都在发生。在距离足够远不再被认为是碰撞之前,它们可能会接触几帧。你需要在逻辑上允许每次截击只增加一次 volley =
if ball.colliderect(paddle):
y_positive = False
y_negative = True
ball_speed += 1
这是因为它们的碰撞盒重叠的每一个时钟信号都在发生。在距离足够远不再被认为是碰撞之前,它们可能会接触几帧。你需要在逻辑上允许每次截击只增加一次
volley = False ## only allow increment once ball crosses midpoint of screen
if ball.x > screen_width /2: volley = True
if ball.colliderect( paddle ) and volley:
y_positive = False
y_negative = True
ball_speed += 1
volley = False
或者,一旦球触碰,将球轻轻推离桨足够远,以确保它们的碰撞盒不会触碰
if ball.colliderect( paddle ):
y_positive = False
y_negative = True
ball_speed += 1
ball.x += ball.width /2
轻推它,不管它需要多远。它会“多次”增加。。。你这到底是什么意思?它的加速比你预期的要快吗?如果是这样的话,我猜是因为碰撞被多次检测到。在解决碰撞时,还需要更新球的位置,而不仅仅是重定向球的速度。