如何裁剪精灵的某些部分?

时间:2013-03-29 04:56:20

标签: iphone cocos2d-iphone

我正在开发一款像iPhone一样点击蚂蚁(https://itunes.apple.com/us/app/tap-tap-ants/id348839552?mt=8)的游戏。

我想裁剪精灵的一部分。当一只蚂蚁碰到蛋糕精灵时,蛋糕的某些部分会消失。我研究了很多但找不到任何解决方案。

Plz帮助

2 个答案:

答案 0 :(得分:1)

您可以使用CCSpriteBatchNode形式的spritesheets在精灵上设置显示框。如下所述。这允许您选择要显示的spritesheet的盒装区域。

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上工作,使用不同的帧,如下图所示。

enter image description here

在这个例子中,框架将是这样的

sprite1有CGRectMake(0,10,10,40)

精灵2有CGRectMake(10,0,20,50)

但是当然你也必须相应地定位精灵。

答案 1 :(得分:0)

在最新版本的cocos2d-iphone中,他们添加了一个名为CCClippingNode的类。您可以使用它来剪辑(仅显示部分节点)及其内容。

http://www.cocos2d-iphone.org/api-ref/2.1.0/interface_c_c_clipping_node.html