2

首先我想提一下,我对游戏或 SpriteKit 框架没有深入的了解(但是,我有很好的编程技能)。

我想为 iPhone 和 iPad 创建一个 2D 游戏。到目前为止,我知道我必须使用 SpriteKit。不过,这款游戏最重要的还是地形。我应该能够动态生成它,所以它会有曲线(但不是尖峰边缘),就像附加图像中的黑线一样。此外,我希望将地面的下部分为两个单独的层(一层薄薄的绿色模拟草,其余的一些棕色模拟泥土),但这是一件好事。

另外我想知道当某物(如炮弹)碰到它时,我怎样才能“爆炸”一小部分地面。

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

随机生成的地面示例

谢谢!

4

1 回答 1

3

地图生成

您可以在这里尝试两种方法:

  1. SKTileMapNode班级在SpriteKit
  2. CGPathCoreGraphics 中的类。

SpriteKit 方法

首先看一下SpriteKit的瓦片地图功能。有一个类SKTileMapNode可以帮助您制作基于图块的侧视图或自上而下的游戏世界视图。

Apple 在 WWDC 2016 上介绍了这一点,会议视频是一个很好的起点。Xcode 有一个很好的编辑器来设置你的瓦片地图,包括特定瓦片的变体(称为“瓦片变体”)和向瓦片添加元数据。所有这些在这里都会有所帮助。

您可以将预先构建的图块组定义为SKTileGroups,用于像山的两侧这样只有彼此相邻才有意义的东西。这样做可能很简单,然后生成一些随机组合。然后,您可以使用不同的变体来显示“爆炸”的图块。

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

--苹果文档,SKTileGroup

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

这是Ray Wenderlich的教程,带您了解基于图块的游戏的基础知识。这是另一个 RayWenderlich.com 教程,讨论了程序关卡生成。

CGPath 方法

这个答案讨论了类似的情况,有人询问如何绘制与 SpriteKit 一起使用的曲线。它显示了一些用于生成随机贝塞尔曲线的代码,并链接到第二个答案,其中深入讨论了 CoreGraphics 对向贝塞尔曲线添加路径的处理。

爆炸

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

于 2017-07-03T19:37:16.217 回答