2016-03-31 4 views
1

Я играю с iOS 9.2 SpriteKit (используя Swift 2. *) и не был уверен, что наличие кнопки «панель» в нижней части экрана должно быть вложенной сценой. Это кажется мне неправильным, но я не нашел никаких документов по теме гнездования сцены. Я прикрепил скриншот. Оранжевый бит - это макет с экрана и не является фактическим кодом.iOS SpriteKit Сцены - несколько сцен На экране

Кнопки внизу находятся в области «кнопки» (только термин, который я нарисовал), который является оранжевым. Сцена, созданная контроллером, - это «игровая сцена» со «звездным» фоном.

Итак, должна ли оранжевая панель ниже быть собственной сценой или каким-то подклассом SKNode с дочерними узлами кнопки, все в игровой сцене?

enter image description here

ответ

2

Нет, вы не хотите иметь вложенные сцены. Даже теоретически это возможно, он будет действовать как обычный узел (без какого-либо уродливого взлома), что не является целью SKScene. В шаблоне игры SpriteKit у вас есть один SKView и он имеет только одно свойство сцены. Итак, все предназначено для того, чтобы представить одну сцену в то время.

Что вы хотите использовать SKNode/SKSpriteNode ... Обычно люди создают слой HUD, который является SKNode, а затем добавляют в него элементы. Бит это не обязательно, и вы можете добавить эти кнопки непосредственно на сцену.

1

Другой альтернативой является использование UIKit (UILabels, UIButtons и т.д.) элементы, как HUD, с SKView являющейся нижним слоем большинства. Этот подход намного проще, потому что вы можете использовать автоматические ограничения для отображения своего HUD без беспокойства по поводу разных устройств, но обратите внимание, что это может повлиять на производительность, если у вас много чего происходит.

Смежные вопросы