遮罩cocos2d

- (CCSprite *)maskedSpriteWithSprite:(CCSprite *)textureSprite maskSprite:(CCSprite *)maskSprite { 
     
     // 1
     CCRenderTexture * rt = [CCRenderTexture renderTextureWithWidth:maskSprite.contentSizeInPixels.width height:maskSprite.contentSizeInPixels.height];
     
     // 2
     maskSprite.position = ccp(maskSprite.contentSize.width/2, maskSprite.contentSize.height/2);
     textureSprite.position = ccp(textureSprite.contentSize.width/2, textureSprite.contentSize.height/2);
     
     // 3
     [maskSprite setBlendFunc:(ccBlendFunc){GL_ONE, GL_ZERO}];
     [textureSprite setBlendFunc:(ccBlendFunc){GL_DST_ALPHA, GL_ZERO}];
     
     // 4
     [rt begin];
     [maskSprite visit];        
     [textureSprite visit];
     [rt end];
     
     // 5
     CCSprite *retval = [CCSprite spriteWithTexture:rt.sprite.texture];
     retval.flipY = YES;
     return retval;
     
 }

  

posted @ 2013-07-12 14:02  飞云飘雪  阅读(157)  评论(0)    收藏  举报