Swift SpriteKit: игра не перезапускается должным образом? Что происходит?

У меня есть эта игра, поэтому, когда мой игрок умирает, я должен просто коснуться экрана, и игра должна перезапуститься, но вместо этого ничего не движется, независимо от того, сколько раз я нажимаю. Ошибок нет.

Вот код для моей функции перезапуска: (готов опубликовать любой другой необходимый код)

func restart() {
    cloudGenerator.stopClouds()

let newScene = GameScene(size: view!.bounds.size)
    view!.presentScene(newScene)

    newScene.scaleMode = .AspectFill

}

person Rae Tucker    schedule 07.09.2015    source источник
comment
Вызывается ли когда-либо функция перезапуска?   -  person Kendel    schedule 07.09.2015
comment
Да, это называется в TouchesBegan func   -  person Rae Tucker    schedule 08.09.2015


Ответы (1)


Таким образом, простым решением является переход от вашей текущей сцены к вашей текущей сцене. При этом ваш код будет запускаться с начала файла. Вы также можете добавить причудливые переходы. Вот код:

let transition = SKTransition.fadeWithDuration(1.0) //create a transition
let gamePlayScene = GamePlayScene(fileNamed: "GamePlayScene") // create a new scene from your file (let variableName = NameOfGameFile(fileNamed: "NameOfGameFile")
self.view?.presentScene(gamePlayScene, transition: transition) // present the scene with the transition

Просто поместите это в метод начала прикосновений и создайте условие, что если облака были остановлены и пользователь касается экрана, переход к текущей игровой сцене.

Надеюсь, это помогло и удачи.

person Michael Berk    schedule 07.09.2015
comment
Огромное спасибо! Меня все еще немного смущает первый NameOfGameFile во второй строке. Я вставил это как название своей игры, и там написано использование неразрешенного идентификатора... - person Rae Tucker; 08.09.2015
comment
Имя файла — это имя файла, в котором находится код (файл .swift). - person Michael Berk; 08.09.2015
comment
Хорошо, переход работает нормально, но моя игра все еще не начинает двигаться - person Rae Tucker; 08.09.2015
comment
Если движение начинается автоматически, движение должно начаться после перехода. Если это не так, то убедитесь, что вы вызываете функции движения. Это будет работать так же, как вы нажмете кнопку запуска. - person Michael Berk; 08.09.2015