[cocos2dx]内部でテクスチャを作成して、クリッピングする

お世話になっております。

しゃまとんです。

cocos2dxをいじっていて、画面の一定領域を流れるメッセージを作りたいなぁと思い、クリッピング処理はできないだろうかと模索していたときのメモです。
この時は横に流れるメッセージを作ろうとしていました。

cocosのバージョンは3.2です。

クリッピングのやり方に関するwebページはいろいろと出てくるのですが、マスク用の画像を用意して、クリッピング処理するようなやり方だったのですが、これのためだけに画像用意するのもなぁ・・・と思い調べていたら、プログラムでスプライトを合成して、一枚のスプライトを生成できるみたいなので、利用してみました。

RenderTextureを利用して、テクスチャを生成し、スプライトを作成します。
流れるメッセージはそのままLabelを利用し、クリッピング処理をして、addChildします。

下記サンプルコードです。作成しているSceneから呼び出せば、表示される(はず)と思います。

こちらのようにクリッピングされるかと思います。

clipping_test

ちなみにAndroidではクリッピング処理がうまくいかない場合があるようですので、下記のサイトを参考にさせていただきました。

cocos2dxのClippingNodeが変になったときの対処(for android) (。・ω・。)

ハマケン100%開発: cocos2d-x Androidプロジェクトの場合はStencilバッファを明示的に有効化しておかないとクリッピングできない事がある

以上です。

■参考リンク
Clipping
スプライトのマスク処理(Cocos Code IDE, Lua言語)
chroot – cocos2dx3.0 スポットライトみたいなのを作る
Cocos2dx 3.0でクリッピングマスクの実現

RenderTexture
ladywendy – Cocos2d-x:動的にテクスチャを作成
【Cocos2d-x 3.x】複数の画像を1枚のSpriteに合成する

コメントをどうぞ

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