[Cocos2d-x] CCSprite にマスクをかけられる CCMask クラス
Cocos2d-x の CCSprite にマスクをかけられる CCMask クラスを作ってみました。
cocos2dx のフォーラムに v1.0 用の CCMask クラスはあったのですが、v2.0 では動作しなかったので、下記サイトなどを参考に v2.0 用を作成しました。
How To Mask a Sprite with Cocos2D 2.0
How To Create Cool Effects with Custom Shaders in OpenGL ES 2.0 and Cocos2D 2.X
cocos2d-x フォーラムの CCMask
http://www.cocos2d-x.org/boards/6/topics/11023
サンプルプロジェクトを GitHub にアップしています。
https://github.com/syuhari/CCMask
使い方は簡単です。マスクの CCSprite とマスクをかける CCSprite から CCMask クラスを作るだけです。後からマスクかける画像を変えることも可能です。
// Create a mask and an object
CCSprite* mask = CCSprite::create("mask_circle.png");
CCSprite* object = CCSprite::create("HelloWorld.png");
object->setPosition(
ccp(mask->getContentSize().width/2,
mask->getContentSize().height/2));
// Create a masked image
CCMask* masked = CCMask::create(mask , object);
masked->setPosition(ccp(size.width/2, size.height/2));
this->addChild(masked);

マスク画像

マスクをかける画像

丸い画像でマスク
関連する投稿
3shadows…
…