2014-11-17 3 views
0

Я могу обрезать, используя встроенное кодирование в iOS, однако, поскольку я хочу переместить на Android с помощью SpriteBuilder, я хочу скопировать 2 CCSprites с помощью Cocos2D.Clip CCSprite/CCNode с другим CCSprite/CCNode - Cocos2D

Я ищу сделать следующее:

enter image description here

Я видел библиотеки, которые поддерживают только cocos2d 2, однако я использую последнюю версию и это уже не похоже на работу.

Как бы я мог достичь этого эффекта?

+0

Является ли это cocos2d вопрос? если да, покажите свой код, что вы пробовали, а что не работает для вас ... если это вопрос Spritebuilder, не помещайте тег cocos2d. – YvesLeBorg

+0

Cocos2D вопрос. Я не могу найти библиотеку, которую я пробовал, но был для Cocos2d V 2 ... Я знаю о Stencil, но не знаю, как применить его к этому контексту – Allreadyhome

ответ

0

Для тех, кто ищет аналогичное исправление, родной для 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];