如何在 Cocos Creator 场景之间发送最终游戏分数?

How to send final game score between Cocos Creator scenes?

我正在尝试使用 Cocos Creator 创建游戏。我在游戏中使用了多个文件。像 Game.js GameOver.js Jump.js 等。我正在用 GainScore.js 收集分数。我必须将最终得分发送到 GameOver.js 文件。我在比赛中正确地显示了比分。但是当游戏结束时,我必须将它发送到另一个屏幕。如何使用全局游戏分数?

我的 gainScore 函数:

  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
    },
});

您可以使用 CommonJS。创建一个名为 Global.js.

的新文件
scripts
  |__ GameOver.js
  |__ GainScore.js
  |__ Global.js

并在此处保留您的全局变量。

Global.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();
    },
});