用cocos2d缩放渲染图像会破坏图像质量

时间:2012-08-22 18:48:56

标签: image opengl-es cocos2d-iphone scaling

使用Cocos2d(v 1.01),如果我按原样显示精灵,我会得到高质量的精灵,但如果我使用的是CCRenderTexture,则图像质量很差。只有在我放大图像时才会发生这种情况。

参见随附的屏幕截图,原始图像在左侧。 enter image description here 这是我的代码:

CCScene* pScene = CCDirector::sharedDirector()->getRunningScene();

CCSprite* origSprite = CCSprite::spriteWithFile("jigsaw/11.png");
origSprite->setPosition(CCPoint(250,250));
origSprite->setScale(1.3);
pScene->addChild(origSprite, 500);

CCSprite* imageSprite = CCSprite::spriteWithFile("jigsaw/11.png");
CCSize imageSize = imageSprite->boundingBox().size;
CCRenderTexture *rt = CCRenderTexture::renderTextureWithWidthAndHeight(imageSize.width, imageSize.height);
imageSprite->setPosition(ccp(imageSize.width/2, imageSize.height/2));
rt->begin();
imageSprite->visit();
rt->end();
CCSprite *newSprite = CCSprite::spriteWithTexture(rt->getSprite()->getTexture());
delete rt;
newSprite->setFlipY(true);
newSprite->setPosition(CCPoint(750,750));
newSprite->setScale(1.3);
pScene->addChild(newSprite, 500);

2 个答案:

答案 0 :(得分:5)

好的,我找到了答案。我需要补充一下:

newSprite->getTexture()->setAntiAliasTexParameters();

答案 1 :(得分:0)

我不确定但只是尝试一下, 因为我也遇到了这个问题而且我已经找到了解决这个问题的方法希望这对你也有帮助。

只需设置渲染纹理和精灵的大小和位置

喜欢这个>

renderTexture = [CCRenderTexture renderTextureWithWidth:1024 height:768];
      [renderTexture clear:1.0f 
                         g:1.0f
                         b:1.0f
                         a:1.0f];
      renderTexture.position = CGPointMake(500,380);
      [self addChild:renderTexture z:0 tag:1];


 sprite.anchorPoint=ccp(1,1);
        sprite.position =CGPointMake(530, 380);
        [renderTexture addChild:sprite];