我正在开发一款类似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 形式的 spritesheets 在 sprite 上设置显示框架。如下所示。这允许您选择要显示的精灵表的框区域。
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 上工作,具有不同的帧,如下图所示。
在此示例中,框架将是这样的
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