Cocos2d iphone 如何在cocos2dx中对图像实现循环裁剪器?
目标是在cocos2dx中的配置文件图片上实现->一个圆形裁剪器,这样配置文件图片看起来就像现在whatsapp配置文件图片中的一样。Cocos2d iphone 如何在cocos2dx中对图像实现循环裁剪器?,cocos2d-iphone,cocos2d-x,cocos2d-x-3.0,cocos2d-android,Cocos2d Iphone,Cocos2d X,Cocos2d X 3.0,Cocos2d Android,目标是在cocos2dx中的配置文件图片上实现->一个圆形裁剪器,这样配置文件图片看起来就像现在whatsapp配置文件图片中的一样。 我想先在配置文件图片上设置一个裁剪器,然后根据需要对其进行缩放。我在cocos2d-xv2.x中使用了RenderTexture。相信这种方法也适用于v3.x。以下是伪代码: sprite* MaskedSpriteWithSprite(textureSpriteName, maskSpriteName) { sprite* textureSprite
我想先在配置文件图片上设置一个裁剪器,然后根据需要对其进行缩放。我在cocos2d-xv2.x中使用了RenderTexture。相信这种方法也适用于v3.x。以下是伪代码:
sprite* MaskedSpriteWithSprite(textureSpriteName, maskSpriteName)
{
sprite* textureSprite = create(textureSpriteName);
sprite* maskSprite = create(maskSpriteName);
textureSprite->setPosition(ccp(textureSprite.width * 0.5f, textureSprite.height * 0.5f));
maskSprite->setPosition(ccp(maskSprite.width * 0.5f, maskSprite.height * 0.5f));
renderTexture* rt = renderTexture::create(maskSprite.width, maskSprite.height);
ccBlendFunc bfMask = ccBlendFunc();
bfMask.src = GL_ONE;
bfMask.dst = GL_ZERO;
maskSprite->setBlendFunc(bfMask);
// turn off anti-aliasing around the mask sprite
maskSprite->getTexture()->setAliasTexParameters();
ccBlendFunc bfTexture = ccBlendFunc();
bfTexture.src = GL_DST_ALPHA;
bfTexture.dst = GL_ZERO;
textureSprite->setBlendFunc(bfTexture);
rt->begin();
maskSprite->visit();
textureSprite->visit();
rt->end();
// generate the resulting sprite
sprite* pOutcome = sprite::createWithTexture(rt->getSprite()->getTexture());
pOutcome->setFlipY(true);
return pOutcome;
}
你为什么不试着用剪报呢?