2

ゲームをプレイしているときにスコアラベルを更新し、 を使用して表示していますCCLabelBMFontが、スコアが変化すると、スコアラベルの各文字が常にラベルの位置を変更します。

そのままの姿勢でいきたい!

例: 00:01 は 00:50 よりも小さなスペースを取ります。テキストが変更されたときに、テキストをCCLabelBMFont再配置します。助けてください、同じ位置を維持する方法は?

4

3 に答える 3

0

ビットマップ フォントは、可変幅の True Type フォントから作成されました。

Courier のような固定幅フォントのみが、文字列内の同じ量の文字に対して同じ文字列幅を提供します。非固定幅フォントで描画された文字列は、フォントの文字に応じて幅が異なります。つまり、'w' 文字は、'i' 文字より幅が広くなります。

FontBook.app (すべての Mac に付属) を開き、[コレクション] パネルで [固定幅] を選択して、固定幅のフォントのみを表示します。私のシステムには、次の固定幅フォントがインストールされています。

ここに画像の説明を入力

参考までに、Monaco は Xcode で使用されるデフォルトのフォントです。

于 2013-02-20T16:15:09.413 に答える
0

質問で判断するのは難しいですが、ラベルの実際の配置の変更について話していると思います。つまり、配置が希望するものではないことを意味します (たとえば、右揃えではなく左揃え)。

Left Justified:
test
testtest

Right Justified:
    test
testtest

これがあなたが話していることである場合、ノードのアンカーポイントを変更することでテキストの配置を変更できます。

// for right justified
label.anchorPoint = ccp(1, 0);
于 2013-02-21T17:14:25.253 に答える
0

「常に位置を変える」とは、「左側が同じ場所にとどまらない」ということですか?

CCNodeクラスにはanchorPoint、このノードのどのポイントがノードの親のポイントに「固定」されるかを決定するプロパティがあります。(0, 0) のアンカー ポイントは、左下隅、(1, 1) - 右上、(0.5, 0.5) - 中央を意味します。すべての配置と変換は、アンカー ポイントの周りで行われます。

anchorPointラベルのコンテンツ サイズが変更されたときに「ピン留め」するポイントを意味するように、ラベルのプロパティを設定します。例:

左上隅を静止させたい場合:

label.anchorPoint = ccp(0, 1);

左側の中央を静止させたい場合:

label.anchorPoint = ccp(0, 0.5);
于 2013-02-22T09:14:29.427 に答える