【问题标题】:box2d. platformer. destructible terrain盒子2d。平台游戏。可破坏的地形
【发布时间】:2013-12-06 08:05:09
【问题描述】:

所以,我想创建一个具有可破坏地形的平台游戏。我使用用于 java 的物理引擎 box2d。我有一个想法,做很多小的静态球,它们会在受到一些影响时被破坏。有更好的想法吗?这不会降低性能吗?

还有第二个问题。如果我这样做,如何才能填充这个区域的图片?有点像虫子的风格。

【问题讨论】:

标签: box2d game-physics


【解决方案1】:

除了你的想法也应该有效之外,它可能缺乏分辨率,这让我更喜欢this 方法。

【讨论】:

    【解决方案2】:

    我也有类似的想法,打算在接下来的几周内尝试一下。我打算为我的孩子们制作一个“城堡对城堡”的射击游戏。这是我要做的解决方案:

    1. 创建一个静态 U 形框,该框横跨地形底部,两侧大约位于屏幕一侧的一半。
    2. 使用大量小球,每个小球都有固定的半径(标称 0.1m,您可以在 Box2d 中使用的最小尺寸)。
    3. 在不更新屏幕的情况下执行大量物理迭代,直到最后让它安定下来,或者检查所有处于休眠状态的东西。

    地形选项#1: 将屏幕区域划分为垂直框,每个框有几个像素。他们将从屏幕底部延伸到屏幕顶部,并将其划分为多个垃圾箱。然后计算每个箱子的 AABB(在 box2d 坐标中),然后使用 box2d 中的 AABB 查询来查找该箱子中的所有物体。取找到的物体的最大 Y 位置并使用该 (+radius) 找到该箱中的最高点。连接所有箱子中的所有最高点,这将为您提供一条可以绘制的连续线,等等。

    地形选项#2: 创建一个 0.2m 长 x 0.1m 高的矩形长链,每端用旋转接头连接。从顶部将链条放在地形顶部。现在角色可以从上面走过。

    在选项 #1 或选项 #2 中,当“炸弹”击中时,摧毁炸弹中心附近的大量球(或您使用的任何多边形),物理应该使它们掉落。

    我当然会亲自尝试一下,看看我是否可以让它发挥作用。

    更新 嗯...有时...在您的脑海中似乎是个好主意,但实际上...并非如此。我确实做了一个演示丢下许多不同大小的球以创建“随机”地形。地形并不是特别令人兴奋。我还使用了 AABB 查询来删除触摸屏幕的球。这行得通……但也不是特别令人兴奋。所以,一个很好的基本“让东西在 box2d 中运行”演示,但可能不是这个问题的好答案。 FWIW,代码贴在github上here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多