cocos2d x 滾動數字label

2022-03-11 22:19:21 字數 2746 閱讀 9600

遊戲中有時候需要滾動計數顯示,比如新增金幣從100滾動顯示到9999,這裡封裝乙個動作,直接傳入label即可,方便使用。

使用時呼叫utilslabel裡面的方法即可。

//

// utilslabel.hpp

// actionlabel

//// created by xujw on 16/3/7.

////

#ifndef utilslabel_h

#define utilslabel_h

#include

#include "cocos2d.h"

using_ns_cc;

typedef

enum labelformat

klabelformat;

class utilslabel

;#endif /* utilslabel_h */

//// utilslabel.cpp

// actionlabel

//// created by xujw on 16/3/7.

////

#include "utilslabel.h"

#include "actionlabelvalueto.h"

void utilslabel::setlabelvaluewithformat(cocos2d::label *label, long

long value, float maxwidth,klabelformat format)

for (int i=0; i1)*3+i), ",");}}

label->setstring(strvalue);

}else

//需要縮放

if (maxwidth > 0)

}else

}void utilslabel::runlabelvalueto(cocos2d::label *label, long

long tovalue, float duration, float width, klabelformat format)

}startvalue = atoll(strvlaue.c_str());

}else

if (duration <= 0)

else

}void utilslabel::runlabelvaluetovalue(label*label,long

long startvalue,long

long tovalue,float duration,float width,klabelformat format)

else

}//// actionlabel.hpp

// actionlabel

//// created by xujw on 16/3/7.

//// 當label數值是數字時進行滾動效果,比如從1滾動到100

#ifndef actionlabel_h

#define actionlabel_h

#include

#include "cocos2d.h"

#include "utilslabel.h"

using_ns_cc;

class actionlabelvalueto:public actioninterval

;#endif /* actionlabel_h */

//// actionlabel.cpp

// actionlabel

//// created by xujw on 16/3/7.

////

#include "actionlabelvalueto.h"

actionlabelvalueto::actionlabelvalueto()

:_startvalue(0)

,_endvalue(0)

,_delayvalue(0)

,_maxwidth(0)

,_labelformat(knormal)

{}actionlabelvalueto::~actionlabelvalueto()

{}actionlabelvalueto* actionlabelvalueto::create(float duration, long

long startvalue, long

long endvalue,float maxvalue,klabelformat format)

cc_safe_delete(lvt);

return

nullptr;

}bool actionlabelvalueto::initwithduration(float duration, long

long startvalue, long

long endvalue,float maxwidth,klabelformat format)

_startvalue = startvalue;

_endvalue = endvalue;

_labelformat = format;

_maxwidth = maxwidth;

return

true;

}void actionlabelvalueto::startwithtarget(cocos2d::node *target)

//time is 0 to 1

void actionlabelvalueto::update(float time)

}

cocos2d x 資源集合

官網 主席子龍山人 archive 2011 08 08 2131019.html kmyhy的專欄 老g的小屋 cocos2d xtouch事件cocos2d 事件冒泡規律 和 ccmenu一直響應事件的解決辦法 swallow touches how to setmultipletouchena...

cocos2d x 開篇介紹

關於cocos2d x這一遊戲引擎,現在受到了手機遊戲開發者的青睞。其實cocos2d一開始是由於cocos2d iphone的成功,然後帶動各類開源專案越來越火。由蘋果獨家的objective c到了流行的c 支援了更多平台。cocos2d x中的 x 是什麼意識呢,其實其中包含著兩層含義 1 代...

Cocos2d x 常見巨集

1 ns cc begin cocos2d命名空間開始 2 ns cc end cocos2d命名空間結束 3 using ns cc 宣告cocos2d命名空間 4 cc synthesize readonly vartype,varname,funname 宣告乙個成員變數以及getfunnam...