精灵正在碰撞,但球不会反向反弹

时间:2014-11-11 00:04:48

标签: python pygame pycharm

这是我的碰撞检测代码(必要时略读):

if pygame.sprite.spritecollide(my_ball, ballGroup, False):
    Ball.speed[1] = -Ball.speed[1]
    print '1'
Ball.move()

if pygame.sprite.spritecollide(dad, ballGroup, False):
    Ball.speed[1] = -Ball.speed[1]
Ball.move()

该程序告诉我两个精灵正在碰撞(代码中为print '1'),因此此代码中的球(称为Ball)应该在相反方向上从另一个精灵“弹跳”。但它只是通过精灵,而不是弹跳。为什么会这样?

1 个答案:

答案 0 :(得分:1)

如果您运行脚本以使图像只是水平移动,那么您的冰球没有垂直速度。这意味着该行:

Ball.speed[1] = -Ball.speed[1]

什么也没做。

如果您将其更改为

Ball.speed[0] = -Ball.speed[0]

然后应该反转水平速度。

另外,您的Ball.move()行每次循环都会运行两次...