Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 精灵在碰撞,但球赢了';不要反方向弹跳_Python_Pygame_Pycharm - Fatal编程技术网

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]