ゲームをプレイしているときにスコアラベルを更新し、 を使用して表示していますCCLabelBMFont
が、スコアが変化すると、スコアラベルの各文字が常にラベルの位置を変更します。
そのままの姿勢でいきたい!
例: 00:01 は 00:50 よりも小さなスペースを取ります。テキストが変更されたときに、テキストをCCLabelBMFont
再配置します。助けてください、同じ位置を維持する方法は?
ゲームをプレイしているときにスコアラベルを更新し、 を使用して表示していますCCLabelBMFont
が、スコアが変化すると、スコアラベルの各文字が常にラベルの位置を変更します。
そのままの姿勢でいきたい!
例: 00:01 は 00:50 よりも小さなスペースを取ります。テキストが変更されたときに、テキストをCCLabelBMFont
再配置します。助けてください、同じ位置を維持する方法は?
ビットマップ フォントは、可変幅の True Type フォントから作成されました。
Courier のような固定幅フォントのみが、文字列内の同じ量の文字に対して同じ文字列幅を提供します。非固定幅フォントで描画された文字列は、フォントの文字に応じて幅が異なります。つまり、'w' 文字は、'i' 文字より幅が広くなります。
FontBook.app (すべての Mac に付属) を開き、[コレクション] パネルで [固定幅] を選択して、固定幅のフォントのみを表示します。私のシステムには、次の固定幅フォントがインストールされています。
参考までに、Monaco は Xcode で使用されるデフォルトのフォントです。
質問で判断するのは難しいですが、ラベルの実際の配置の変更について話していると思います。つまり、配置が希望するものではないことを意味します (たとえば、右揃えではなく左揃え)。
Left Justified:
test
testtest
Right Justified:
test
testtest
これがあなたが話していることである場合、ノードのアンカーポイントを変更することでテキストの配置を変更できます。
// for right justified
label.anchorPoint = ccp(1, 0);
「常に位置を変える」とは、「左側が同じ場所にとどまらない」ということですか?
CCNode
クラスにはanchorPoint
、このノードのどのポイントがノードの親のポイントに「固定」されるかを決定するプロパティがあります。(0, 0) のアンカー ポイントは、左下隅、(1, 1) - 右上、(0.5, 0.5) - 中央を意味します。すべての配置と変換は、アンカー ポイントの周りで行われます。
anchorPoint
ラベルのコンテンツ サイズが変更されたときに「ピン留め」するポイントを意味するように、ラベルのプロパティを設定します。例:
左上隅を静止させたい場合:
label.anchorPoint = ccp(0, 1);
左側の中央を静止させたい場合:
label.anchorPoint = ccp(0, 0.5);