1

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

见附件截图,原始图像在左边。在此处输入图像描述 这是我的代码:

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);
4

2 回答 2

5

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

newSprite->getTexture()->setAntiAliasTexParameters();
于 2012-09-24T12:37:15.027 回答
0

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

只需设置 Render 纹理和 Sprite 的大小和位置

像这样 >

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];
于 2012-08-23T10:38:10.650 回答