Я новичок в 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
Spritekit: Почему моя координаторная ценность NIL, пытаясь перейти из моего Gamescene обратно на свою домашнюю сцену? ⇐ IOS
Программируем под IOS
1744264640
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79565826/spritekit-why-is-my-coordinator-value-nil-when-trying-to-navigate-from-my-games[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия