【问题标题】:Creating Terrain(shape) in Pymunk using Opennoise使用 Opennoise 在 Pymunk 中创建地形(形状)
【发布时间】:2020-01-11 13:43:04
【问题描述】:

我一直在尝试使用 Opennoise 在 pymunk 中创建具有 2D 地形的游戏。地形坐标为:

from opensimplex import OpenSimplex
noise = OpenSimplex()
inputs = np.zeros((100002,2))

for x in range(100000):
    inputs[x] = ([x, (noise.noise2d(0.004*x, 0) - 0.125)*100 + 700])
inputs[100000] = ([100000,900])
inputs[100001] = ([0,900])

y 坐标移动了 +700,因为我使用 pygame 显示所有内容,窗口顶部位于 y = 0 处,底部位于 y = 800 处。

然后我创建一个多边形形状的 pymunk 静态体,并创建一个 pygame 形状来显示地形,如下所示: (pm = pymunk)

 self.body = pm.Body(10,100,pm.Body.STATIC)
 self.shape = pm.Poly(self.body, inputs)
 space.add(self.body, self.shape)
 pygame.draw.polygon(surface, color, inputs)

pygame 创建的形状看起来正确,但与 pymunk 多边形的形状不匹配,这表明 pymunk 没有创建预期的形状。 那么如何按预期创建 pymunk 形状?

【问题讨论】:

    标签: python pygame pymunk simplex-noise


    【解决方案1】:

    我认为问题可能是多边形不是封闭的和凸的。通常,如果您想要长的“波浪”/“线”,则更容易使用分段形状而不是多边形。 Pymunk 多边形总是凸的。如果您作为坐标传入的内容尚未凸出且未闭合,则会创建并使用凸包。

    如果这不是问题,我认为如果您将多边形的长度减少到大约 10 或 100,并截取一两个显示问题的屏幕截图并将其放在这里,这将有助于理解问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      相关资源
      最近更新 更多