Python 精灵在碰撞,但球赢了';不要反方向弹跳
这是我的碰撞检测代码(必要时浏览):Python 精灵在碰撞,但球赢了';不要反方向弹跳,python,pygame,pycharm,Python,Pygame,Pycharm,这是我的碰撞检测代码(必要时浏览): 程序告诉我两个精灵发生碰撞(print'1'in code),因此此代码中的球(称为ball)应该以相反方向从另一个精灵上“反弹”。但它只是穿过精灵,而不是反弹。为什么会发生这种情况?如果运行脚本使图像水平移动,则冰球没有垂直速度。这意味着该行: Ball.speed[1] = -Ball.speed[1] 什么也不做 如果你把它改成 Ball.speed[0] = -Ball.speed[0] 那应该是水平速度的倒转 另外,您的Ball.move()行
程序告诉我两个精灵发生碰撞(
print'1'
in code),因此此代码中的球(称为ball
)应该以相反方向从另一个精灵上“反弹”。但它只是穿过精灵,而不是反弹。为什么会发生这种情况?如果运行脚本使图像水平移动,则冰球没有垂直速度。这意味着该行:
Ball.speed[1] = -Ball.speed[1]
什么也不做
如果你把它改成
Ball.speed[0] = -Ball.speed[0]
那应该是水平速度的倒转
另外,您的
Ball.move()
行将为每个循环运行两次…这有点混乱。您有一个名为Ball
的类,然后将Ball
定义为Puck
的实例。Ball
和myBall
类也显示相同。我会添加一些更多的调试,例如,在碰撞时打印Ball.speed
,但在更改之前和之后。这是因为这两个类都适用于第一个球员的曲棍球球拍和第二个球员的曲棍球球拍。在公平的游戏中,它们应该是相同的。是的,但这正是我的观点:如果它们相同,那么您可以使用相同的球
类创建您的我的球
和爸爸
对象。
Ball.speed[0] = -Ball.speed[0]