2013-02-20 31 views
2

我更新比分標籤,當我玩我的遊戲時,我顯示它通過使用CCLabelBMFont,當分數變化時,每個字符分數標籤總是改變標籤的位置。字符是字符串總是改變位置,當我通過使用CCLabelBMFont更改字符串值

我想保持它的位置!

例如:00:01佔用比00:50小的空間;當文字改變CCLabelBMFont重新定位文字。幫助我,如何保持相同的位置?

+0

設置中央對齊? – trojanfoe 2013-02-20 10:20:11

+0

如果你的字體是可變的音高,你永遠不會達到你正在尋找的'固定'外觀。 – YvesLeBorg 2013-02-20 13:26:42

回答

0

您的位圖字體是由具有可變寬度的真實字體創建的。

只有像Courier這樣的固定寬度的字體纔會爲字符串中相同數量的字符提供相同的字符寬度。使用非固定寬度字體繪製的字符串將根據字體中的字符具有不同的寬度,即「w」字符的寬度大於「i」字符的寬度。

打開FontBook.app(每個Mac都附帶),並在「收藏」面板中選擇「固定寬度」以僅查看固定寬度的字體。在我的系統已經安裝了這些固定寬度字體:

enter image description here

僅供參考,摩納哥是由Xcode中使用的默認字體。

0

很難說這個問題,但我的猜測是你在談論你的標籤改變的實際定位,這意味着你的對齊不是你想要的(有理由左而不是正確的權利例如)。

Left Justified: 
test 
testtest 

Right Justified: 
    test 
testtest 

如果這就是你所說的,你可以通過改變節點錨點來改變文本的對齊方式。

// for right justified 
label.anchorPoint = ccp(1, 0); 
0

當你說「總是改變立場」,你的意思是「左邊不住在同一個地方」?

CCNode class has anchorPoint property,它確定此節點的哪個點「固定」到節點的父節點中。 (0,0)的錨點表示左下角,(1,1) - 右上角,(0.5,0.5) - 中心。所有的定位和轉換都發生在錨點附近。

設置anchorPoint您的標籤的屬性意味着當標籤的內容大小發生變化時,您希望「固定」的點。例子:

,如果你想左上角是固定的:

label.anchorPoint = ccp(0, 1); 
如果你想左側的中間是固定

label.anchorPoint = ccp(0, 0.5);