Генерация случайной местности в SpriteKit
Прежде всего, я хочу отметить, что у меня нет глубоких знаний об играх или средах SpriteKit (однако, у меня есть хорошие навыки программирования).
Я хочу создать 2D-игру для iPhone и iPad. Пока я знаю, что должен использовать SpriteKit. Тем не менее, наиболее важным в этой игре является местность. Я должен быть в состоянии генерировать его динамически, так что он будет иметь кривые (но не шипы), как черная линия от прикрепленного изображения. Кроме того, я хотел бы иметь нижнюю часть земли в двух отдельных слоях (один тонкий слой зеленого цвета, чтобы имитировать траву, а остальные - коричневатый цвет, чтобы имитировать грязь), но это что-то хорошее.
Также я хотел бы знать, как я могу "взорвать" небольшую часть земли, когда что-то (например, пушечное ядро) касается этого.
Может ли кто-нибудь объяснить мне или объяснить, как мне этого добиться?
Спасибо!
1 ответ
Генерация карт
Здесь вы можете попробовать два подхода:
-
SKTileMapNode
класс вSpriteKit
-
CGPath
класс (ы) в CoreGraphics.
Подход SpriteKit
Начните с рассмотрения SpriteKit
Особенности карты тайла. Есть класс под названием SKTileMapNode
это может помочь вам создать видимость вашего игрового мира сбоку или сверху вниз.
Apple представила это на WWDC 2016, и сессия видео является хорошей отправной точкой для этого. В Xcode есть хороший редактор для настройки ваших карт плиток, в том числе вариаций конкретных плиток (называемых "вариантами плиток") и добавления метаданных к вашим плиткам. Все это будет полезно здесь.
Вы можете определить заранее построенные группы плиток как SKTileGroup
с, для таких вещей, как две стороны холма, которые имеют смысл только рядом друг с другом. Это может быть достаточно просто, чтобы сделать это, а затем генерировать случайные комбинации. Затем вы можете использовать разные варианты, чтобы показать "взорванные" плитки.
Предпочтительный метод создания групп листов - использовать инструменты редактора в XCode. Однако, если вы хотите работать с поддержкой листов SpriteKit программно, в следующих примерах обсуждаются необходимые шаги.
- Документация Apple,
SKTileGroup
Соответственно, вы можете использовать SKTileGroupRule
может помочь вам определить правила о том, где класть плитки относительно друг друга программно.
Вот учебник от Рэя Вендерлиха, который познакомит вас с основами игры на основе тайлов. Вот еще один учебник RayWenderlich.com, который обсуждает генерацию процедурного уровня.
Подход CGPath
В этом ответе обсуждается аналогичная ситуация, когда кто-то спрашивал о рисовании кривых для использования с SpriteKit. Он показывает некоторый код для генерации рандомизированных кривых Безье и ссылки на второй ответ с подробным обсуждением обработки CoreGraphics добавления путей к кривым Безье.
Взрывы
Для взрыва плитки, посмотрите на SKEmitterNode
, Xcode включает в себя редактор эмиттеров, и вы можете делать с ним классные вещи.