Android Cocos2d-x iOS アプリ

Cocos2d-x テキストを1文字ずつ表示する文字送りのやり方

投稿日:2016年10月26日 更新日:

caption_speed

こんにちは。akiです。

この記事ではテキストを1文字ずつ表示する「文字送り」についてCocos2d-xで実装する方法を説明していきます。RPGなどで良く見かけるアレですね。

 

 

基本的な考え方

1.予めテキストを透明化しておく

2.時間差で1文字ずつテキストの透明化を解除する

 

 

プログラム実装


    // テキストの生成&透明化
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    
    auto text = Label::createWithTTF("文字送りのテストです。\n改行コードも挟めます。", FONT, 10);
    text->setPosition(Vec2(visibleSize.width / 2 + origin.x
                       , visibleSize.height / 2 + origin.y));
    text->setColor(Color3B::WHITE);
    text->setOpacity(0);// ポイント1 テキストの透明化
    this->addChild(text);

    // テキストの透明化解除
    for(int i = 0; i < text->getStringLength(); i++){

        auto func = CallFunc::create([this, i, text](){
            Sprite* sp = text->getLetter(i);
            if(sp != nullptr){
                text->getLetter(i)->setOpacity(255);// ポイント2 テキストを1文字ずつ透明化解除
            }
        });
        
        auto delay = DelayTime::create(.05 * i);
        auto seq = Sequence::create(delay, func, nullptr);
        
        if(text->getLetter(i) != nullptr){
            text->getLetter(i)->runAction(seq);
        }
        
    }

 

 

ポイントはgetLetter()ですね。改行コードも勝手に処理してくれます。

 

細かいテクニックですが、こういう演出がゲームらしさを出すのだと思います。

 

PrainGoogleAdSense

PrainGoogleAdSense

-Android, Cocos2d-x, iOS, アプリ
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Cocos2d-x iOS アプリ名(アプリのアイコン名)のローカライズ方法

こんにちは。akiです。 この記事ではCocos2d-xでのアプリ名(アプリのアイコン名)のローカライズについて説明します。デバイスの環境に応じて一つのアプリのタイトル名を、日本語と英語でそれぞれ表示 …

cocos2dx

Cocos2d-x カスタムイベントを削除するタイミング

こんにちは、akiです。 この記事ではカスタムイベントを削除するタイミングについて説明します。   掲題の通り、カスタムイベントを登録した場合、不要になった際に明示的に削除してやる必要があり …

【フェリクスマギアの魔女】一部端末でログインできなくなる問題について

2019年3月23日時点で、一部端末でログインできなくなる問題について状況をお知らせします。 問題の修正は完了しており、この修正によりアプリにログインできるようになる可能性があります。 アプリがストア …

ゲーム制作 Cocos2d-x関連 第11回 「音楽、効果音を鳴らす」

いつになったらゲームで音楽を流せるようになるの~   最初に書籍でcocos2dxの勉強をしていた時、こんなことを思っていた気がします・・・     今回はサウンド関連で …

cocos2dx

Cocos2d-x サーバ側の処理とデータ送信(Httpレスポンス)

この記事は「Cocos2d-x セーブデータをサーバに送信して保存する」の続きになります。 ・第1回 : サーバにデータを保存したい理由と全体の流れ ・第2回 : クライアント側の処理とデータ送信(H …