[cocos2d]CCLabelBMFontで「改行」や「特定の文字の色を変える」方法

[cocos2d]CCLabelBMFontで「改行」や「特定の文字の色を変える」方法
   

CCLabelBMFontを使って文字を出力する際、同じ色の文字ばかりでは面白くない!
重要な言葉は色を変えて表現したい!
今回はCCLabelBMFontをカスタマイズをして、「改行」や「特定の文字の色を変える」方法を案内します。
[4/1 記事を少し追記しました]

文字の改行

cocos2dのver2から、ディフォルトでも文字を「改行できる」ようになりました。
文字にしているNSString内で、[\n]をつけた所が開業されます。

こんな形でしていします。


仕組み

この改行がどういった仕組みなのか、それはCCLabelBMFontを見ればわかります。


これが、改行の仕組みです。
cocos2dのver1の時は、自作で設置をしないといけないのですが、ver2の場合は何もしないでも「改行」が利用できます。

文字の色を変える

私は「GlyphDesigner」で作ったフォントを利用しています。
これを使えばcocos2dで利用できるフォントデータが簡単に作れるのですが、その際に色は全部同じ色になってしまいます。

2013 2 13 2233

[GlyphDesignerについてはこちらを確認ください]

CCLabelBMFontをカスタマイズする

では、どうすればいいのか?
私が考えたのが、「改行」と同じようにCCLabelBMFontをカスタマイズすれば設定できないかということです。

CCLabelBMFont.m内


[追記 2013 4/1]
CCLabelBMFontクラス内に、上記で格納した配列を取り出すメソッドを作成します。


文字を出力する際の設定

CCLabelBMFontで構成されている文字は全てCCSpriteクラスで表現されています。
まずは、どの文字の色を変えたいかを決めます。

こんなNSStringを用意します。
見ていただければわかると思いますが、私は[]で囲まれた文字の色を変えるようにしています。

こうすれば、どの文字の色を変えたいかを配列(NSMutableArray)に格納できます。

後は、配列(NSMutableArray)をCCLabelBMFontから呼び出して、色を変えてあげればいいのです。
コードはこれが正しいかわかりませんが、上手く行っているので記載します。

2013_2_13_4433.png
こんな感じでやれば色を特定の文字を変えることができます。

さいごに

「色を変える」は私は独自に考えたものです。
もっとスマートなやり方があるかもしれないのですが、これを使えば特定の文字を変えることができました。(もしかしたら、色を変えるのはCCLabelBMFontでできるかもしれません)

考え方としては,
  • 特定の文字を選ぶ
  • 選んだ文字の色を変える
この2つです。

もっといいやり方があれば、是非教えて下さい。

Related Posts Plugin for WordPress, Blogger...