cocos2d-x js 动态增加分数

前端之家收集整理的这篇文章主要介绍了cocos2d-x js 动态增加分数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这两天一直在整一个分数动态增加效果,类似于开心消消乐结算时分数滴滴滴的累加效果,自行脑补啊。实现步骤主要是拿到开始时的分数和结束时的分数,取个差值,根据差值判断是加到结束时的分数还是减到结束时的分数。加减的分数就是结束分数乘以一个系数,系数则是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

猜你在找的Cocos2d-x相关文章