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);
マスク画像

マスク画像

マスクをかける画像

CCMask Image

丸い画像でマスク

関連する投稿