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

2024-09-30 01:35:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的所有代码都可以在这里找到: https://github.com/MysteryCoder456/PyTanks.io

下面是一段视频,讲述了发生的情况(请记住,只有在坦克落地后才按一次“D”键): https://streamable.com/2fuzz

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


Tags: 代码httpsgithubcom游戏静态动态pygame
1条回答
网友
1楼 · 发布于 2024-09-30 01:35:26

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

 self.vertices = (
        (-width/2, -height/2),
        (width/2, - height/2),
        (width/2, height/2),
        (-width/2, height/2)
    )

这与这里的问题类似Pymunk/Chipmunk2d - dynamic bodies colliding with static bodies generating collsion impulses 我将在pymunk的文件中澄清这一点,这似乎是一个容易犯的错误

相关问题 更多 >

    热门问题