在Game脚本里实现计分和更新分数的逻辑,打开Game脚本,在properties区块的最后添加分数显示Label的引用属性,代码如下。

    1. properties: {
    2. // …
    3. // score label 的引用
    4. scoreDisplay: {
    5. default: null,
    6. type: cc.Label
    7. }
    8. },

    接下来在onLoad()方法里添加计分用的变量的初始化:

    1. onLoad:function(){
    2. //...
    3. //初始化计分
    4. this.score = 0;
    5. },

    然后在update()方法后面添加新方法gainScore():

    1. gainScore: function () {
    2. this.score += 1;
    3. // 更新 scoreDisplay Label 的文字
    4. this.scoreDisplay.string = 'Score: ' + this.score;
    5. },

    保存Game脚本后,回到层级管理器,选中Canvas节点,然后把前面添加好的score节点拖曳到属性检查器里Game组件的Score Display属性中

    然后在Candy脚本中调用Game中的得分逻辑。下面打开Candy脚本,在onPicked()方法中加入gainScore的调用:

    1. onPicked: function() {
    2. // 当糖果被收集时,调用 Game 脚本中的接口,生成一个新的糖果
    3. this.game.spawnNewStar();
    4. // 调用 Game 脚本的得分方法
    5. this.game.gainScore();
    6. // 销毁当前糖果节点
    7. this.node.destroy();
    8. },

    保存后预览,可以看到现在收集糖果时屏幕正上方显示的分数会增加,如图8.40所示
    image.png