这是我的碰撞检测代码(必要时略读):
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
)应该在相反方向上从另一个精灵“弹跳”。但它只是通过精灵,而不是弹跳。为什么会这样?
答案 0 :(得分:1)
如果您运行脚本以使图像只是水平移动,那么您的冰球没有垂直速度。这意味着该行:
Ball.speed[1] = -Ball.speed[1]
什么也没做。
如果您将其更改为
Ball.speed[0] = -Ball.speed[0]
然后应该反转水平速度。
另外,您的Ball.move()
行每次循环都会运行两次...