Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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 pygame-实体对象碰撞检测_Python_Pygame_Game Physics - Fatal编程技术网

Python pygame-实体对象碰撞检测

Python pygame-实体对象碰撞检测,python,pygame,game-physics,Python,Pygame,Game Physics,我正在和我的小组一起使用Pygame为学校这学期开发一个游戏。我负责建造物理引擎 我的问题:如何让玩家对象在与rect对象碰撞时停止?我在互联网和这个网站上搜寻答案,但一切似乎都很复杂 下面是我正在尝试使用的特定代码块: if player.rect.left == rect.right: player.undo_right() 此块前面是游戏循环。我所要做的就是使播放器始终与长方体保持20像素的距离。一旦这个测试开始,我就能应用更好的边界。现在,它偶尔会排斥玩家,而且从来不会

我正在和我的小组一起使用Pygame为学校这学期开发一个游戏。我负责建造物理引擎

我的问题:如何让玩家对象在与rect对象碰撞时停止?我在互联网和这个网站上搜寻答案,但一切似乎都很复杂

下面是我正在尝试使用的特定代码块:

if player.rect.left == rect.right:
        player.undo_right()
此块前面是游戏循环。我所要做的就是使播放器始终与长方体保持20像素的距离。一旦这个测试开始,我就能应用更好的边界。现在,它偶尔会排斥玩家,而且从来不会始终如一。有时,我会运行它,它会反弹一次,然后玩家会自由地穿过矩形

我意识到互联网上有很多关于这类事情的链接,但我想尝试使用这样的简单代码来实现冲突。如果我不能,那为什么?有人能举例说明一种简单有效的方法吗


谢谢。

对于显而易见的评论:如果对象在每个步骤中移动超过1个像素,那么if player.rect.left就不能使用“==”。顺便说一句,打印(player.rect.left,rect.right),你就会明白为什么不能使用
=
,你需要