Spritekit: Почему моя координаторная ценность NIL, пытаясь перейти из моего Gamescene обратно на свою домашнюю сцену?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Spritekit: Почему моя координаторная ценность NIL, пытаясь перейти из моего Gamescene обратно на свою домашнюю сцену?

Сообщение Anonymous »

Я новичок в iOS/Swift/Spritekit и в процессе миграции простой карточной игры в стиле пасьянса с Android. В настоящее время у меня есть две сцены: < /p>

LauncherScene, который является домашней страницей для приложения, и < /li>
Gamescene, где карты разбираются, и играет < /li>
< /ul>
. Метка нарезан, метод NewGameTap -Cappens вызывается в GameViewController, а новые загрузки GameScene. Игра в игровой игре происходит нормально. nil. < /p>
Вот фрагменты для каждого элемента реализации. Декларация протокола в Gamescene: < /p>
import SpriteKit

protocol GameSceneCoordinator: AnyObject {
func goHomeTextTapped(_ scene: GameScene)
}

class GameScene: SKScene {

weak var coordinator: (GameSceneCoordinator)?

var gameDeck = CardDeck()
...
< /code>
координатор вызван методом Touchesbegan (значение координатора - это NIL, когда я нарушаю этот вызов: < /p>
override func touchesBegan(_ touches: Set, with event: UIEvent?) {
let touch:UITouch = touches.first! as UITouch
let positionInScene = touch.location(in: self)
let touchedNodes = nodes(at: positionInScene)

...

if ((touchedNodes.contains(homeLabel)) && gameComplete) {
coordinator?.goHomeTextTapped(self)

}
}
< /code>
расширение GameViewController. Этот код никогда не выполняется, поскольку контроллер в приведенном выше фрагменте равен нулю: < /p>
extension GameViewController: GameSceneCoordinator {
func goHomeTextTapped(_ scene: GameScene) {
guard let view = self.view as? SKView else { return }
let scene = LauncherScene(size:CGSize(width: 768, height: 1024))
scene.coordinator = self
scene.scaleMode = .aspectFill
view.presentScene(scene)
}

}
< /code>
Launcherscene Gamescene < /p>
Я следовал этому примеру на среде, а в направлении Launcher-> Gamescene этот паттерн координатора работал отлично. Я проверял свой код по примеру здесь несколько раз и не могу найти разницу, которая объяснила бы, почему координатор нуждается от Gamescene обратно в Launcherscene

Подробнее здесь: https://stackoverflow.com/questions/795 ... m-my-games
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»