LayaBox在API上面用起来还是很不方便的,比如我想定时loop一个东西,但是有循环次数,LayaBox就没有提供这样的接口,接下来我们要实现一个动态增加分数的效果,如果可以固定次数的loop就会变得很简单,但,没有就算了,我们自己实现以下就可以了。游戏结算面板分数实现一个像定时器一样的动态增加分数效果,废话不说直接上一下代码:
// 显示分数
private showScore() {
this.bestLab.visible = false;
var loopCount: number = 10;
var delayTime = 50;
var score = 0;
var longDelay:number = 0;
if (this.scoreNum <= loopCount) {
Laya.timer.once(delayTime, this, this.addScoreEffect, [loopCount, 1, delayTime, 1]);
} else {
var preDis = this.scoreNum / loopCount;
Laya.timer.once(delayTime, this, this.addScoreEffect, [loopCount, preDis, delayTime, preDis]);
}
}
private addScoreEffect(count: number, score: number, delay: number, increase: number) {
count--;
this.gameScoreLab.changeText(Math.round(score).toString());
if (count > 0) {
let gameScore = score + increase;
Laya.timer.once(delay, this, this.addScoreEffect, [count,gameScore,delay,increase]);
}
}
this.scoreNum是要显示的分数。
需要注意的是LayaBox在计算的时候精度问题。