最近尝试使用cocos2dx的CCSprite画一些自定义的图表(如线状图)时遇到了恶心的锯齿问题;
cocos2dx 版本:
2.2.3
尝试方法:
采用ccsprite加载一段 10*2 的线段,然后通过调整这个精灵的角度(rotation) 和 位置拼凑出自己所需的图形,发现精灵的抗锯齿效果没有生效。
代码如下:
CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("line.PNG", 36);
batchNode->setPosition(CCPointZero);
batchNode->getTexture()->setAntiAliasTexParameters();
this->addChild(batchNode);
for (int i = 0; i < 36; i++) {
CCSprite* testLine = CCSprite::createWithTexture(batchNode->getTexture());
testLine->setPosition( ccp(400,400));
testLine->setRotation(i*10);
testLine->setScaleY(10);
//testLine->setScaleX(0.5);
//testLine->getTexture()->setAntiAliasTexParameters();
batchNode->addChild(testLine);
}
CCSpriteBatchNode* batchNode_withoutAnti = CCSpriteBatchNode::create("line.PNG", 36);
batchNode_withoutAnti->setPosition(CCPointZero);
batchNode_withoutAnti->getTexture()->setAliasTexParameters();
this->addChild(batchNode_withoutAnti);
for (int i = 0; i < 36; i++) {
CCSprite* testLine = CCSprite::createWithTexture(batchNode->getTexture());
testLine->setPosition( ccp(800,400));
testLine->setRotation(i*10);
testLine->setScaleY(10);
//testLine->setScaleX(0.5);
//testLine->getTexture()->setAliasTexParameters();
batchNode_withoutAnti->addChild(testLine);
}
```
效果如图片显示;
目前我怀疑精灵的抗锯齿设置是在图片旋转前处理;关于图片旋转后的抗锯齿问题,请问有经验的同学给建议或讨论;其次也尝试过CCDrawNode方式,同样存在锯齿问题;
贴出来的图看不出锯齿了