cocos2d遊戲 如何顯示分數 分數變化

2021-09-05 22:36:56 字數 3697 閱讀 8026

在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...