这两天一直在整一个分数动态增加的效果,类似于开心消消乐结算时分数滴滴滴的累加效果,自行脑补啊。实现步骤主要是拿到开始时的分数和结束时的分数,取个差值,根据差值判断是加到结束时的分数还是减到结束时的分数。加减的分数就是结束分数乘以一个系数,系数则是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);这样基本上可以实现分数动态滴滴滴增加减少(包括负数)的过程,再配个适当的音效,效果会更好哦。 原文链接:https://www.f2er.com/cocos2dx/339368.html