cocos2d-js 精灵设置裁剪区域的方法

Cocos2d-x3.0 

//a static method 

Sprite* HelloWorld::maskedSpriteWithSprite(Sprite* textureSprite, Sprite* maskSprite) 

// 1 

RenderTexture * rt = RenderTexture::create( maskSprite->getContentSize().width, 

maskSprite->getContentSize().height ); 

// 2 

maskSprite->setPosition(maskSprite->getContentSize().width/2, 

maskSprite->getContentSize().height/2); 

textureSprite->setPosition(textureSprite->getContentSize().width/2, 

textureSprite->getContentSize().height/2); 

// 3 

maskSprite->setBlendFunc( BlendFunc{GL_ONE, GL_ZERO} ); 

textureSprite->setBlendFunc( BlendFunc{GL_DST_ALPHA, GL_ZERO} ); 

// 4 

rt->begin(); 

maskSprite->visit(); 

textureSprite->visit(); 

rt->end(); 

// 5 

Sprite *retval = Sprite::createWithTexture(rt->getSprite()->getTexture()); 

retval->setFlippedY(true); 

return retval; 

你可能感兴趣的:(cocos2d-js 精灵设置裁剪区域的方法)