在Game脚本里实现计分和更新分数的逻辑,打开Game脚本,在properties区块的最后添加分数显示Label的引用属性,代码如下。
properties: {
// …
// score label 的引用
scoreDisplay: {
default: null,
type: cc.Label
}
},
接下来在onLoad()方法里添加计分用的变量的初始化:
onLoad:function(){
//...
//初始化计分
this.score = 0;
},
然后在update()方法后面添加新方法gainScore():
gainScore: function () {
this.score += 1;
// 更新 scoreDisplay Label 的文字
this.scoreDisplay.string = 'Score: ' + this.score;
},
保存Game脚本后,回到层级管理器,选中Canvas节点,然后把前面添加好的score节点拖曳到属性检查器里Game组件的Score Display属性中
然后在Candy脚本中调用Game中的得分逻辑。下面打开Candy脚本,在onPicked()方法中加入gainScore的调用:
onPicked: function() {
// 当糖果被收集时,调用 Game 脚本中的接口,生成一个新的糖果
this.game.spawnNewStar();
// 调用 Game 脚本的得分方法
this.game.gainScore();
// 销毁当前糖果节点
this.node.destroy();
},
保存后预览,可以看到现在收集糖果时屏幕正上方显示的分数会增加,如图8.40所示