iPhoneでタップタップアリ( https://itunes.apple.com/us/app/tap-tap-ants/id348839552?mt=8 )みたいなゲームをやっています。
スプライトの一部をトリミングしたい。アリがケーキのスプライトに触れると、ケーキの一部が消える。いろいろ調べましたが、解決策が見つかりませんでした。
助けてください
iPhoneでタップタップアリ( https://itunes.apple.com/us/app/tap-tap-ants/id348839552?mt=8 )みたいなゲームをやっています。
スプライトの一部をトリミングしたい。アリがケーキのスプライトに触れると、ケーキの一部が消える。いろいろ調べましたが、解決策が見つかりませんでした。
助けてください
スプライトシートを CCSpriteBatchNode の形式で使用して、スプライトに表示フレームを設定できます。以下のように。これにより、表示するスプライトシートのボックス領域を選択できます。
CCSpriteBatchNode *caveSheet = [CCSpriteBatchNode batchNodeWithFile:@"cavey_ss3.png"];
[self addChild:caveSheet];
CCSprite *player = [CCSprite spriteWithFile:@"somethingUnimportant.png"];
CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:caveSheet.texture rect:CGRectMake(0,0,300,300)];
//(x-start, y-start, width, height)
[player setDisplayFrame:frame];
または、画像の隅にあるノッチのようなものを消したい場合は、同じ CCSpriteBatchNode で動作する 2 つのスプライトを、下の図のように異なるフレームで設定できます。
この例では、フレームは次のようになります
sprite1 には CGRectMake(0,10,10,40) があります
スプライト 2 には CGRectMake(10,0,20,50) があります
もちろん、スプライトもそれに応じて配置する必要があります。
cocos2d-iphone の最新バージョンでは、CCClippingNode というクラスが追加されました。これを使用して、ノードとそのコンテンツをクリップ (一部のみ表示) できます。
http://www.cocos2d-iphone.org/api-ref/2.1.0/interface_c_c_clipping_node.html