在SpriteKit中生成随机地形

时间:2017-07-03 19:04:30

标签: ios sprite-kit sktilemapnode

首先,我想提一下,我对游戏或SpriteKit框架一无所知(但是,我有很好的编程技巧)。

我想为iPhone和iPad制作2D游戏。到目前为止,我知道我必须使用SpriteKit。然而,这个游戏最重要的是地形。我应该能够动态生成它,因此它将具有曲线(但不是尖峰边缘),如附加图像中的黑线。此外,我想在两个单独的层(一个薄绿色模拟草和其余一些褐色模拟污垢)的地面的下部,但这是一件好事。

我也想知道我怎么能爆炸"当某物(如炮弹)触及它时,一小部分地面。

有人可以解释或指导我如何实现这个目标吗?

example of random generated ground

谢谢!

1 个答案:

答案 0 :(得分:3)

地图生成

您可以尝试两种方法:

  1. SKTileMapNode
  2. 中的SpriteKit课程
  3. CoreGraphics中的CGPath类。
  4. SpriteKit方法

    首先查看SpriteKit的平铺地图功能。有一个名为SKTileMapNode的课程可以帮助您制作基于平铺的侧面或自上而下的游戏世界视图。

    Apple在2016年WWDC上推出了这款产品,the session video是一个很好的起点。 Xcode有一个很好的编辑器来设置你的瓷砖地图,包括特定瓷砖的变化(称为" Tile Variants")和向瓷砖添加元数据。所有这些在这里都会有所帮助。

    您可以将预先构建的图块组定义为SKTileGroup s,例如山丘的两侧只能彼此相邻。这样做可能很简单,然后生成一些随机组合。然后,您可以使用不同的变体来显示"爆炸"瓷砖。

      

    创建切片组的首选方法是使用Xcode中的编辑器工具。但是,如果您希望以编程方式使用SpriteKit的磁贴支持,以下示例将讨论必要的步骤。

         

    - Apple Documentation, SKTileGroup

    因此,您可以使用SKTileGroupRule来帮助您定义有关以相对于彼此以编程方式放置切片的位置的规则

    来自Ray Wenderlich的a tutorial带您了解基于图块的游戏的基础知识。这里讨论了程序级别的another RayWenderlich.com tutorial

    CGPath方法

    This answer讨论了一个类似的情况,有人询问绘制曲线是否与SpriteKit一起使用。它显示了一些用于生成随机贝塞尔曲线的代码,以及与a second answer的链接以及对CoreGraphics'的深入讨论。处理向贝塞尔曲线添加路径。

    爆炸

    要爆炸瓷砖,请查看SKEmitterNode。 Xcode包含一个发射器编辑器,你可以用它做一些很酷的东西。