2015-07-30 4 views
0

У меня есть SKScene с именем GameScene. Обычно, когда я работаю в этом классе, я могу добавить дочерние узлы в представление с помощью: self.addChild(...) Однако я хочу добавить узел из другого класса. Я попробовал GameScene().addChild(...), но это, похоже, не сработало. Какие-либо предложения?Как добавить узел в представление из другого класса в Swift

+0

'GameScene()' создает ** новую ** GameScene. Вероятно, вы захотите сохранить свою ссылку на существующую сцену. – jtbandes

+2

Не могли бы вы прояснить ситуацию? Почему вы хотите добавить узлы, даже не будучи в GameScene? – dannybess

ответ

0

Вам нужно получить текущий экземпляр игровой сцены, чтобы добавить к нему детей. GameScene() - это просто метод, который инициализирует новую сцену, но не имеет ничего общего с текущей сценой, которую вы используете.

Вместо этого вы можете вернуться в место, где оно было инициализировано (вероятно, в контроллере просмотра), и инициализировать там другой класс (тот, из которого вы хотите добавить детей). Измените конструктор так, чтобы вы могли пройти в этом экземпляре GameScene и сохранить его как свойство/переменную класса, из которого вы хотите позвонить. Затем используйте его как переменные и добавьте все нужные вам дети.

0

Попробуйте это в вашем файле, где узел должен быть добавлен:

addChild(OtherClass().functionWhereYouAddTheNodes())

Это работало для меня.

Железная дорога.

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