在cocos2d中,我們大多時間需要對時間或者是所取得的分數進行顯示,比如得到了一定的獎勵之後,會對分數有所增加。顯示必須有乙個分數的png的sprite源,除此之外,還需要有乙個fnt檔案,對裡面分數的位置進行標識。
1。乙個png源
這不用說了,一張上比如,依次顯示0123456789
2。fnt檔案
名字和名字一致,副檔名不同 info face="eurostilebold" size=32 bold=1 italic=0 charset="" unicode=0 stretchh=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
common lineheight=33 base=26 scalew=256 scaleh=256 pages=1 packed=0
page id=0 file="bitmapfont.png"
chars count=10
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=26 xadvance=8 page=0 chnl=0
char id=48 x=0 y=0 width=19 height=24 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
char id=49 x=19 y=0 width=15 height=23 xoffset=2 yoffset=4 xadvance=20 page=0 chnl=0
char id=50 x=34 y=0 width=19 height=23 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
char id=51 x=53 y=0 width=20 height=24 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
char id=52 x=73 y=0 width=21 height=23 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=0
char id=53 x=94 y=0 width=19 height=24 xoffset=2 yoffset=4 xadvance=20 page=0 chnl=0
char id=54 x=113 y=0 width=20 height=24 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
char id=55 x=133 y=0 width=19 height=23 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
char id=56 x=152 y=0 width=20 height=24 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
char id=57 x=172 y=0 width=19 height=24 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=0
3。分數的讀取顯示
以下是0。8版本cocos2d的方式,
bitmapfontatlas
*scorelabel = [
bitmapfontatlas
bitmapfontatlaswithstring:
@"0"
fntfile:
@"bitmapfont.fnt"];
self
addchild:scorelabel z:
5tag:kscorelabel];
簡單說明:讀取bitmapfont的fnt初始化,而不是用sprite的方式,加到self的manager裡面,z軸層次是5,加乙個tag算是id的標識吧。然後把分數初始化到螢幕的某乙個位置上。
接下來這一段是關注於如何變化的:
首先是乙個bonus,顧名思義,乙個獎勵的初始化,比如是乙個金幣。
atlassprite*bonus = (atlassprite*)[spritemanager
getchildbytag
:kbonusstarttag
+currentbonustype];
if(bonus.visible) { //如果這個金幣可見
cgpoint bonus_pos = bonus.position; //得到金幣的位置
float range = 20.0f; //金幣這個精靈的大小
if(bird_pos.x > bonus_pos.x - range &&
bird_pos.x
< bonus_pos.x + range &&
bird_pos.y > bonus_pos.y - range &&
bird_pos.y
< bonus_pos.y + range ) {
switch
(currentbonustype) { //判斷金幣是多少分的獎勵
case
kbonus5: score += 5000; break;
case
kbonus10: score += 10000; break;
case
kbonus50: score += 50000; break;
case
kbonus100: score += 100000; break;
nsstring *scorestr = [nsstring
stringwithformat:@"%d",score];
bitmapfontatlas*scorelabel = (bitmapfontatlas*)[
self
getchildbytag
:kscorelabel];
ida1 = [
scaleto
actionwithduration:
0.2f
scalex:
1.5f
scaley:
0.8f];
ida2 = [
scaleto
actionwithduration:
0.2f
scalex:
1.0f
scaley:
1.0f];
id a3 = [sequence
actions:a1,a2,a1,a2,a1,a2,nil];
self
resetbonus];
1。把得到的分數轉換成string型別。
2。通過getbytag的方式,得到剛才初始化過的那個分數。
3。給顯示分數的那個label設定當前分數。
4。a1,a2,a3算是實現了分數的滾動,改變過程中的時差,顯得不是很突兀。
哦了,先說這麼多。 來自tweejump 的code學習。
cocos2d實現語音 Cocos2d 聲音API
param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...
搭建cocos2d遊戲引擎環境
ios遊戲開發引擎,常用的cocos2d,unity引擎。unity是收費的,cocos2d是免費開源的。cocos2d引擎開發環境的搭建 step3.啟動終端,進入cocos2d for iphone解壓後的目錄,執行.install templates.sh u 命令 開始安裝cocos2d 如...
Cocos 2d 遊戲進度條
遊戲開發中難免用到進度條,例如做一些遊戲技能的cd時間等都會使用到 那麼cocos2d當然也封裝了進度條,但是不太理想,如果童鞋們用過就應該知道,那麼今天介紹兩個知識點,第一 介紹cocos2d中的進度條ccprogresstimer如何使用 第二點 修改cocos2d封裝的ccprogressti...