用另一个 CCSprite/CCNode 剪辑 CCSprite/CCNode - Cocos2D
Posted
技术标签:
【中文标题】用另一个 CCSprite/CCNode 剪辑 CCSprite/CCNode - Cocos2D【英文标题】:Clip CCSprite/CCNode with another CCSprite/CCNode - Cocos2D 【发布时间】:2015-01-14 13:21:11 【问题描述】:但是,我可以在 ios 中使用本机编码进行剪辑,因为我希望使用 SpriteBuilder 移植到 android 我想使用 Cocos2D 剪辑 2 个 CCSprite。
我希望做以下事情:
我见过只支持 Cocos2D 2 的库,但我使用的是最新版本,但这些库似乎不再工作。
我将如何实现这种效果?
【问题讨论】:
这是 cocos2d 的问题吗?如果是,请显示您的代码、您尝试过的内容以及对您不起作用的内容……如果是 Spritebuilder 问题,请不要标记 cocos2d。 Cocos2D 问题。我找不到我尝试过但适用于 Cocos2d V 2 的库...我知道 Stencil 但不知道如何将它应用到这个上下文中 【参考方案1】:对于任何寻求类似修复的人,以下是 Cocos2D 的原生版本。
//Get Screen size
CGSize winSize = [[CCDirector sharedDirector] viewSize];
//Set Clipping Sprite
CCSprite *heroClip = [CCSprite spriteWithImageNamed:@"stamina/MenuHappinessWhite.png"];
heroClip.position = ccp(winSize.width/2, winSize.height/2); // Middle of screen
//Set Sprite below Clipping
CCSprite *heroUnder = [CCSprite spriteWithImageNamed:@"stamina/MenuLevel.png"];
heroUnder.position = ccp(winSize.width/2, winSize.height/2);
heroUnder.scaleY = 0.5f;
// Create Clipping Node
CCClippingNode *scissor = [CCClippingNode clippingNodeWithStencil:heroClip];
[scissor setContentSize:self.contentSize];
[scissor setPositionType:CCPositionTypeNormalized];
[scissor setAlphaThreshold:0.0];
//[scissor setInverted:YES];
[self addChild:scissor];
// Add nodes to Clipping Node
[scissor addChild:heroUnder];
并将其添加到应用委托
//Load Clipping Mask
[cocos2dSetup setObject:@GL_DEPTH24_STENCIL8_OES forKey:CCSetupDepthFormat];
【讨论】:
以上是关于用另一个 CCSprite/CCNode 剪辑 CCSprite/CCNode - Cocos2D的主要内容,如果未能解决你的问题,请参考以下文章