这两天一直在整一个分数动态增加的效果,类似于开心消消乐结算时分数滴滴滴的累加效果,自行脑补啊。实现步骤主要是拿到开始时的分数和结束时的分数,取个差值,根据差值判断是加到结束时的分数还是减到结束时的分数。加减的分数就是结束分数乘以一个系数,系数则是0.016/2,这个自己调整,越小加的越快,0.016是跑一帧需要的时间。
然后在计时器中调用这个加减的过程就可以了。具体代码如下:
//用户成绩动态变化 runChangeUserScore: function () { //开始时的分数 var tempScore = parseInt(this.Text_user_score.getString()); //结束时的分数 var endedScore = this.userScoreNum; //console.log("runChangeUserScore tempScore " + tempScore + " this.userScoreNum " + this.userScoreNum); //用户增加的成绩 var changedScore = endedScore - tempScore; //分数增加的时间系数 var changeTime = 0.016 / 2; if (changedScore != 0) { if (changedScore > 0) { if (endedScore == 0) { tempScore -= this.myNewScore * changeTime; } else { tempScore += endedScore * changeTime; } } else if(changedScore < 0) { if (endedScore == 0) { tempScore -= this.myNewScore * changeTime; } else { tempScore -= Math.abs(endedScore) * changeTime; } } if (endedScore < 0 && endedScore - tempScore >= 0) { tempScore = endedScore; } if (endedScore > 0 && tempScore - endedScore >= 0) { tempScore = endedScore; } this.Text_user_score.setString(tempScore.toString()); } else { this.Text_user_score.setString(endedScore.toString()); console.log("unschedule runChangeUserScore ----------------------------end"); this.unschedule(this.runChangeUserScore); } },调用的时候则是
//用户成绩刷新 this.userScoreNum = this.userScoreNum + (res.userWin - res.userLose); this.myNewScore = parseInt(this.Text_user_score.getString()); this.schedule(this.runChangeUserScore);这样基本上可以实现分数动态滴滴滴增加减少(包括负数)的过程,再配个适当的音效,效果会更好哦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。