首页 > 技术文章 > 遮罩

cunkai 2013-07-12 14:00 原文

 1 - (CCSprite *)maskedSpriteWithSprite:(CCSprite *)textureSprite maskSprite:(CCSprite *)maskSprite { 
 2     
 3     // 1
 4     CCRenderTexture * rt = [CCRenderTexture renderTextureWithWidth:maskSprite.contentSizeInPixels.width height:maskSprite.contentSizeInPixels.height];
 5     
 6     // 2
 7     maskSprite.position = ccp(maskSprite.contentSize.width/2, maskSprite.contentSize.height/2);
 8     textureSprite.position = ccp(textureSprite.contentSize.width/2, textureSprite.contentSize.height/2);
 9     
10     // 3
11     [maskSprite setBlendFunc:(ccBlendFunc){GL_ONE, GL_ZERO}];
12     [textureSprite setBlendFunc:(ccBlendFunc){GL_DST_ALPHA, GL_ZERO}];
13     
14     // 4
15     [rt begin];
16     [maskSprite visit];        
17     [textureSprite visit];
18     [rt end];
19     
20     // 5
21     CCSprite *retval = [CCSprite spriteWithTexture:rt.sprite.texture];
22     retval.flipY = YES;
23     return retval;
24     
25 }

 

推荐阅读