【问题标题】:Why is my Dynamic Body sinking through the Static body in pymunk?为什么我的动态身体在 pymunk 中通过静态身体下沉?
【发布时间】:2020-02-24 17:00:09
【问题描述】:

我正在尝试使用 Python 中的 Pygame 和 Pymunk 制作一款坦克战游戏,例如 Pocket Tanks。我有一个动态的身体是坦克和一个静态的身体是地面。一切正常,直到一段时间后,坦克自行向左移动并沉入地面静态体,并在“无剪裁”穿过地面时不断上下弹跳。

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

这是发生的视频(请记住,只有在坦克着陆后按一次“D”键): https://streamable.com/2fuzz

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

【问题讨论】:

    标签: python pygame game-physics physics pymunk


    【解决方案1】:

    可能导致该行为的一件事是不要将重心 (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 的文档中澄清这一点,这似乎是一个容易犯的错误。

    【讨论】:

      猜你喜欢
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2015-10-15
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      相关资源
      最近更新 更多