【cocos2dx入門】文字を表示するLabelクラスの使い方

【cocos2dx入門】文字を表示するLabelクラスの使い方
   

バージョンが3.xになり、今まで文字を表示する時に利用してきた[CCLabelTTF(LabelTTF)]クラスが使えなくなり、新しく[Label]クラスを利用するようになりました。
今回は、このLabelクラスの紹介をブログで紹介をしていきたいと思います。

Labelクラスを使ってみる

使い方はLabelTTFのようにとても簡単に利用ができます。
//テキスト,フォント名,フォントサイズを指定します。
auto text = Label::createWithSystemFont("Text テキスト (比較用)", "HiraKakuProN-W6", 32);
text->setPosition(Point(winSize.width/2,winSize.height/6));
text->setColor(Color3B::WHITE);
this->addChild(text);


Labelの装飾を行う

Labelクラスは、文字の総称が簡単にできます。
これを使えば、以前はフォントを用意していた所を省くことができます。

シャドウ

文字にシャドウ(影)を入れることができます。
enableShadow()メソッドを利用。
//
enableShadow(影の色,サイズ,大きさ);

//具体例
auto text = Label::createWithSystemFont("Text テキスト (シャドウ)", "HiraKakuProN-W6", 32);
text->setPosition(Point(winSize.width/2,winSize.height/3*2));
text->setColor(Color3B::WHITE);
text->enableShadow(Color4B::RED,Size(-2,-4),2);
this->addChild(text);


アウトライン

文字の周りにアウトライン(外周)を設定できます。

auto text2 = Label::createWithSystemFont("Text2 テキスト2 (アウトライン)", "HiraKakuProN-W6", 32);
text2->setPosition(Point(winSize.width/2,winSize.height/2));
text2->setColor(Color3B::WHITE);
text2->enableOutline(Color4B::BLACK,5); // 色と大きさを指定します。
this->addChild(text2);
2014 6 7 fdsas


TTFConfigでフォントと文字サイズを管理するLabelクラスでできないこと

TTFConfigに「フォント名」や「文字の大きさ」を登録すると、Labelが簡単に作成できます。
TTFConfigには、「フォント」を用意する必要があります。
デフォルトで[Resources]フォルダに1つあるので、例としてこれを利用します。

 TTFConfig ttfConfig("fonts/Marker Felt.ttf",
                        48,
                        GlyphCollection::DYNAMIC);

 auto _label = Label::createWithTTF(ttfConfig, "hogehoge");
 _label->setPosition(Point(winSize.width/2,winSize.height/2));
 addChild(_label);



これで、Labelクラスを利用する際に、いちいち「フォント名」「文字サイズ」を設定しなくても良くなります。

エフェクト

TTFConfigを利用すると「光彩(外側)」のようなエフェクトを文字にかけることができます。

TTFConfig ttfConfigEffect(ttfConfig);
ttfConfigEffect.distanceFieldEnabled = true; //trueにする
auto label = Label::createWithTTF(ttfConfigEffect, "TTFConfig Label Effect");
label->setPosition(Point(winSize.width/2,winSize.height/9));
label->enableGlow(Color4B::RED); //色を設定
this->addChild(label);

2014-6-7-fdfsas

【追記 下記問題は解決いたしました】
原因は、fontsをプロジェクトに追加する時に「階層を有効にせずに、そのまま追加していた」からです。
フォントのデータが読み込みができなかったのが問題点でした。
2014-6-6-gfdsds

フォントデータの保存場所には注意しましょう。

【追記前】
ただ、私が何回やってもインスタンスが作成できずにエラーになります。
2014-6-7-fdsasa

【参考】
Cocos2d-x3.0rc2でのLabelの使い方(TTF) – Qiita
Defect on Label fonts | Cocos2d-x

Related Posts Plugin for WordPress, Blogger...