使用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);
答案 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];