滾動字幕和公告是遊戲中經常使用到的元素,本文大致寫一下實現方法,至於例子中具體的座標值,請不要糾結。。。這和美工關係還是蠻大的。我ps技術太搓了。。。
其實它們的實現都是簡單的通過呼叫update來更新位置達到的移動效果,和背景滾動有點類似,一旦滾動結束就重置為起點,開始新的滾動。只是為了達到在某個區域內滾動而不至於超出這個區域,有時候會用一些前景圖來做遮蓋,所以這個時候其實字幕或者公告是有在後面滾動的,但是被遮住了,因此看起來就像是只在某個區域內滾動。以垂直字幕滾動為例說明,如下圖。
不要糾結以下各精靈
的座標位置:)
[cpp]view plain
copy
bool
ctestlayer::init()
while
(0);
return
bret; }
void
ctestlayer::update(
float
delta)
text1->setpositiony(newy);
intnewx=text2->getpositionx()-1; if
(newx<=-text2->getcontentsize().width/2)
//如果滾動到這個位置,重置
text2->setpositionx(newx);}
這個效果有點小bug,就是文字覆蓋到邊框上了,這是因為沒有把邊框做在top層上導致的,實際使用注意這個問題即可。
cocos2d x 滾動數字label
遊戲中有時候需要滾動計數顯示,比如新增金幣從100滾動顯示到9999,這裡封裝乙個動作,直接傳入label即可,方便使用。使用時呼叫utilslabel裡面的方法即可。utilslabel.hpp actionlabel created by xujw on 16 3 7.ifndef utilsl...
cocos2d x 之UITextField的使用
本文使用的是cocos2d x 2.1.6版本,cocosstudio1.6.0.0版本。其呼叫的相關 如下 bool helloworld init void helloworld textfieldevent ccobject psender,textfiledeventtype type 不過...
Cocos2d x之場景切換
在很多rpg遊戲中大部分存在多個場景,如開始的歡迎介面 選單介面 戰鬥介面 場景切換只需要呼叫ccdirector shareddirector replacescene s s為新的場景,這句 的是含意,是用新的場景s去替換掉舊的場景,但是這樣的場景替換,來得太突然,給使用者的感覺不太好,我們需要...