Python 在玩pygame的破砖游戏中,有没有办法在每次碰到桨时提高速度

Python 在玩pygame的破砖游戏中,有没有办法在每次碰到桨时提高速度,python,pygame,Python,Pygame,我正在做一个破砖游戏,我想在它每次碰到桨的时候提高速度。但由于某种原因,当我在速度中加1时,它会增加很多倍。 这是我的密码 if ball.colliderect(paddle): y_positive = False y_negative = True ball_speed += 1 这是因为它们的碰撞盒重叠的每一个时钟信号都在发生。在距离足够远不再被认为是碰撞之前,它们可能会接触几帧。你需要在逻辑上允许每次截击只增加一次 volley =

我正在做一个破砖游戏,我想在它每次碰到桨的时候提高速度。但由于某种原因,当我在速度中加1时,它会增加很多倍。 这是我的密码

 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
轻推它,不管它需要多远。

它会“多次”增加。。。你这到底是什么意思?它的加速比你预期的要快吗?如果是这样的话,我猜是因为碰撞被多次检测到。在解决碰撞时,还需要更新球的位置,而不仅仅是重定向球的速度。