Как отправить окончательный счет игры между сценами Cocos Creator?

Я пытаюсь создать игру с помощью Cocos Creator. Я использую более одного файла в игре. Как Game.js GameOver.js Jump.js и т. д. Я собираю баллы с GainScore.js. Я должен отправить окончательную оценку в файл GameOver.js. Я правильно показываю счет во время игры. Но когда игра заканчивается, я должен отправить ее на другой экран. Как я могу использовать игровой счет как глобальный?

Моя функция усиления:

  gainScore() {
    this.score += 1;
    if (this.scoreDisplay === null) return;
    this.scoreDisplay.string = this.score;
  },

Мой GameOver.js файл

cc.Class({
    extends: cc.Component,

    properties: {
        scoreEnd: {
            default: null,
            type: cc.Label,
        },
    },

    start() {
        this.scoreEnd.string = this.score.toString(); // I can't access with this way
    },
});

person nazerin    schedule 21.08.2020    source источник


Ответы (1)


Вы можете использовать CommonJS. Создайте новый файл с именем Global.js.

scripts
  |__ GameOver.js
  |__ GainScore.js
  |__ Global.js

и сохраните свои глобальные переменные здесь.

Глобальный.js:

module.exports = {
    score: 0
};

И используйте с require в других файлах:

let Globals = require("Globals");

....

gainScore() {
   Globals.score += 1; // not this.score, should be Globals.score
   if (this.scoreDisplay === null) return;
   this.scoreDisplay.string = Globals.score;
},

Вы должны потребовать все другие файлы, которые будут использовать

let Globals = require("Globals");

cc.Class({
    extends: cc.Component,

    properties: {
        scoreEnd: {
            default: null,
            type: cc.Label,
        },
    },

    start() {
        this.scoreEnd.string = Globals.score.toString();
    },
});
person doğukan    schedule 22.08.2020