【cocos2d-x】CCLabelBMFontでADVゲーム風の文字送りを実現する

文字を少しずつ表示していく表現はゲームでよく使われていますね。

ADVゲームに限らず、会話パート的な画面を実装する場面もあるかと思います。

今回はCCLabelBMFontの特性を利用して簡単に文字送りを行う方法を紹介します。

 

一般的には表示する文字列のうち、文字送り途中の文字列を管理するテキストバッファ

を用意して、全表示状態の文字列から少しずつ切り出してテキストバッファに反映し、

描画するという流れだと思います。

しかし今回紹介するのはそのやり方ではありません。

 

話は変わりますがCCLabelBMFontの子要素は1文字毎のCCSpriteの配列となっており、下記の図のように

各Spriteにアクセスできます。

f:id:survive-engineer:20140213003149p:plain

今回はこの仕組みを利用し、はじめにCCLabelBMFont内の全Spriteを非表示状態にしておき、1文字ずつSpriteにアクセスして表示状態にすることで文字送り表現を実現してみます。

その他にも各文字にCCActionを割り当てて1文字毎に別々のアニメーションをさせてみたりと

工夫の余地がありそうです。

 

CCLabelBMFontに文字送りと、特定の文字列の文字色・文字サイズを変更可能な機能を

追加してみました。

gear1554/CCLabelAttributedBMFontTest · GitHub f:id:survive-engineer:20140213005842g:plain

おまけに猫とニャーニャーに該当するSpriteの色と文字サイズを変更しています。

 

使い方、仕組みは下記の通りです。

 

CCLabelAttributedBMFontの設定、使い方

 

文字送りの仕組み

 

これで簡易的な会話パートの実装も効率よく進められそうです。