Как редактировать метку, которая находится в другой сцене в XCode - PullRequest
0 голосов
/ 16 января 2019
  • Да, уже есть подобный вопрос, но он не дает мне ответа

Назад История - не стесняйтесь пропустить

IВы создавали игру, в которой вы должны остановить «монстров», проходящих мимо ваших персонажей, стреляя по ним снарядами, и все это (наконец-то) работает отлично.

Задача

Однако я попытался создать счетчик монет, который будет отображаться всякий раз, когда сцена «переворачивается» на начальный экран (он называется playScene и фактическиигра называется GameScene).Мне было интересно, как я могу создать счетчик, который редактируется в другой сцене, где происходит выигрыш?

1 Ответ

0 голосов
/ 18 января 2019

У вас есть 2 сцены: GameScene и ScoreScene.

ScoreScene - сцена, где игрок перенаправляется после своей смерти. Как потерянная сцена, где вы показываете его статистику. Мы начнем с создания глобальной переменной с именем score и установим для нее значение по умолчанию 0.

class ScoreScene: SKScene {

    let score : Int = 0

    override func didMove(to view: SKView)
    {
        print("Score = \(score)")  // Score = 0
    }
}

Пользователь входит в GameScene, убивает монстра, а затем умирает со счетом 87. Перед тем, как представить ScoreScene, вы проходите счет.

class GameScene: SKScene {

    func change_scene()
    {
        let transition = SKTransition.flipVertical(withDuration: 0.75)
        let next_scene = ScoreScene() // at this point, score = 0
        next_scene.score = 87         // at this point, score = 87
        self.view?.presentScene(next_scene!, transition: transition)
    }
}

Вы можете передавать значения из одной сцены в другую, создав в нашем случае глобальное значение score и присвоив ему значение перед вами presentScene.

...