Я начал следовать учебнику «Космических захватчиков» Рэя Вендерлиха, но значительно расходился. У меня теперь есть 3 SKScenes - мой титульный экран, мой основной игровой экран и мой конечный уровень/игра за экраном. Заглавный экран и конечная игровая сцена я добавил, и у этих обоих есть файлы .sks; на главном экране игры нет и все элементы (SKSpriteNodes и т. д.) размещаются программно. Поток моей программы выглядит следующим образом:Как добавить файлы .sks в существующий проект Swift/Sprite-Kit?
теперь я на самом деле хотел бы разместить некоторые события на главном экране игры с помощью редактора сцены, так что я создал файл .sks для него и пытался изменить мой titleScene.swift следующим образом:
от:
let gameScene = GameScene(size:CGSize(width: 1536, height: 2048))
к:
let gameScene = SKScene(fileNamed: "GameScene.sks") as! GameScene!
Однако, это даст вам:
Я попытался удалить required init(coder aDecoder: NSCoder)
но Xcode потом жалуется, что
требуется INIT (кодировщик: должны быть поставлены подкласс SKScene
Однако мои titleScene
и gameOverScene
также являются подклассами SKScene, и у них нет init (coder :)
Я действительно не вижу разницы в том, что я делаю, чтобы отобразить свой заголовок и мой gameOverScene через (fileNames :) и их .sks-файл и попытаться сделать то же самое для моей игры.
Попробуйте так: если пусть gameScene = GameScene (fileNamed: "GameScene") {} – Whirlwind
Теперь я получаю: «неправильный аргумент в вызове (есть«имя файла : ', expected' size: '). Я уверен, что есть что-то простое, что мне не хватает ... –
InitWithSize не используется, когда сцена загружается из .sks. Я не понимаю, почему у вас это есть в вашем GameScene? Удалите его и удалите реализацию init с помощью кодера, и он будет работать. – Whirlwind