程序图生成 - SpriteKit和GameplayKit

时间:2016-07-15 12:35:31

标签: ios swift sprite-kit procedural-generation gameplay-kit

我有以下代码使用新GameplayKit的{​​{1}}生成噪音。我不确定如何将其用于GKNoise。有没人试过这个?此时噪声应用于每个图块,但不会应用于整体SKTileMapNode。有没有办法将生成的噪音用于整个地图?

TileMap

2 个答案:

答案 0 :(得分:4)

GKNoise返回[-1.0,1.0]范围内的噪音。

你需要以一种有意义的方式将它映射到你的游戏中。一个简单的例子就是说[-1.0,0.0]之间的所有东西都是水,而且(0.0,1.0)之间的所有东西都是土地。

一旦确定了这个映射是什么,只需在GKNoiseMap上使用getValue()为每个要填充的图块采样一次,然后使用规则来决定使用哪个图块。

答案 1 :(得分:0)

最近的一篇文章介绍了一种方法,说明了将 GKPerlinNoiseSource 映射到 SKTileMapNode 的方法。我认为这可能比接受的答案更有用(尽管接受的答案比本文早几年)。

https://www.hackingwithswift.com/example-code/games/how-to-create-a-random-terrain-tile-map-using-sktilemapnode-and-gkperlinnoisesource

请注意这篇文章是在 Swift 5.2 中编写的。