Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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 为什么我的动态身体在pymunk的静态身体中下沉?_Python_Pygame_Game Physics_Physics_Pymunk - Fatal编程技术网

Python 为什么我的动态身体在pymunk的静态身体中下沉?

Python 为什么我的动态身体在pymunk的静态身体中下沉?,python,pygame,game-physics,physics,pymunk,Python,Pygame,Game Physics,Physics,Pymunk,我正在尝试使用Python中的Pygame和Pymunk制作一个类似口袋坦克的坦克战斗游戏。我有一个动态的身体是坦克,一个静态的身体是地面。一切正常,直到一段时间后,坦克自行向左移动,沉入地面静止物体,并在地面上“无夹持”时不断上下弹跳 我的所有代码都可以在这里找到: 下面是一段视频,介绍了发生的情况(请记住,只有在坦克落地后才按一次“D”键): 编辑:我使用的是Python 3.7.6、Pygame 2.0.0dev6、MacOS 10.15.3。我不知道Pymunk的哪个版本。导致这种行

我正在尝试使用Python中的Pygame和Pymunk制作一个类似口袋坦克的坦克战斗游戏。我有一个动态的身体是坦克,一个静态的身体是地面。一切正常,直到一段时间后,坦克自行向左移动,沉入地面静止物体,并在地面上“无夹持”时不断上下弹跳

我的所有代码都可以在这里找到:

下面是一段视频,介绍了发生的情况(请记住,只有在坦克落地后才按一次“D”键):


编辑:我使用的是Python 3.7.6、Pygame 2.0.0dev6、MacOS 10.15.3。我不知道Pymunk的哪个版本。

导致这种行为的一个原因是没有将重心(CoG)放在实际的中心(或接近中心)。在代码中,地面和坦克多边形形状的构建方式意味着它们的中心距将位于形状的第一个角(0,0)。尝试将多边形顶点构建为:

 self.vertices = (
        (-width/2, -height/2),
        (width/2, - height/2),
        (width/2, height/2),
        (-width/2, height/2)
    )
这与这里的问题类似 我将在pymunk的文件中澄清这一点,这似乎是一个容易犯的错误