2016-02-14 4 views
-1

Я создал переменную оценки в своей GameScene. Теперь я хочу увидеть результат в другой сцене, например GameOverScene. Как я могу это сделать?Swift, SpriteKit, передать переменную в другую сцену

+3

Возможный дубликат [SpriteKit: Passing данные между сценами] (http://stackoverflow.com/questions/18885490/spritekit-passing-data-between-scenes) – Whirlwind

+1

Ple ase stop marking и говорить, что вопрос является дубликатом, если все ответы находятся в Objective-C. –

ответ

4

Вам всегда нужно попытаться опубликовать код при переполнении стека.

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

1) Вы можете использовать NSUserDefaults, чтобы сохранить оценку и получить доступ к сохраненному свойству в другой сцене, а затем присвоить ее новой переменной оценки.

2) Вы могли бы сделать свойство оценка статической, так и в gameScene вы бы сказали

static var score = 0 

и чем где-нибудь в вашем проекте вы можете сказать

GameScene.score = 5 

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

3) Еще один способ сделать класс Синглтон

class GameData { 
    static let shared = GameData() 
    var score = 0 

    private init() { } 
} 

чем в ваших SKscenes вы либо сказать

let gameData = GameData.shared 
gameData.score = 5 

или

GameData.shared.score = 5 
Смежные вопросы