本日は、以前からどうしてもやってみたかった「cocos2dxで文字を一つづつ表示する方法」についてブログに書いていきたいと思います。
一気に文字が表示されると、あまりゲームらしくないと感じていたからです。
これまでの経緯
以前に、以下のような記事をブログで書いていました。これは[cocos2d]で実装したものだったのですが、[cocos2dx]でも同じようなことをやりたいとずっと思っていましたが、実装できていませんでした。
でもどうしても文字を一文字づつ表示させたかったのです。
他の人のコードを利用する
解決策として、公開されている他の人のコードを使うことにしました。【こちらです】
【cocos2d-x v3】RPG風に文字を1文字ずつ表示 (「・ω・)「ガオー – 杏z 学習帳
実際に利用する
GitHubにあるコードをそのままXcodeに追加して利用しています。最初一箇所だけエラーがでました。
1 2 3 4 5 6 7 8 |
//h void setCallbackChangedPage( const std::function<void( int )> &callback ); //cpp void LabelAttributedBMFont::setCallbackChangedPage(const std::function<void (long)> &callback) { m_callbackChangedPage = callback; } |
上記のコードが[int]と[long]で型が違うために、エラーになっていたのですが、良くわからないのでとりあえず[int]で統一した所エラーも無くなり、今のところ正常に動いています。
機能を追加する
このコードと機能だけでも素晴らしいのですが、個人的にいくつか機能を追加して利用しています。- ボタンを押してページを切り変えたい
- 文字が全部表示されたの知らせるコールバック関数が欲しい
- 文字の速度を調整したい
最後に
他人のコードを見ると、思いもつかない方法を使って実装をしていることが多いです。今回見たコードもそうでした。
特にコールバックの実装方法は勉強になります。これまで1回もコールバックを利用したことなかったのでこれからは利用をしていきたいと思います。
とても素晴らしい機能が利用できるので、もし実装が上手くいかない場合は参考にしてみてはいかがでしょうか?
![]() | Cocos2d-xスマートフォン2Dゲーム開発講座 Cocos2d-x 3対応 (SMART GAME DEVELOPER) 株式会社TKS2 翔泳社 売り上げランキング : 9349 Amazonで詳しく見る |
