Cocos2D改变了精灵中最后一行像素的颜色?

时间:2010-10-02 17:43:27

标签: iphone cocos2d-iphone sprite

我之前从未见过这个问题,这很奇怪。只是想知道是否有其他人也遇到过这种情况。

alt text

我已经为我的游戏添加了一个精灵,它应该是一个框的左上角,用于放置文本。我希望它可以扩展而不会丢失任何东西,所以我将它分解成各个部分。在上面的图像中,顶部的图像是图像本身,然后底部的图像是在iPhone模拟器中绘制的图像。

知道为什么右边的最后一列像素被改变了吗?我根本没有缩放图像。

2 个答案:

答案 0 :(得分:2)

我不知道Cocos2D,但总的来说,你在这里所做的就是在一个不是一个像素的精确倍数的位置绘制图像。

因此,即使没有缩放,您也会在与原始图像数据不一致的网格上重新采样图像,导致所有像素略微偏离。它只是右边缘是最明显的情况,因为重新采样会让你在这里留下部分透明度。但是看看例如边框中的两行紫色像素:它们不一样,因为你的垂直对齐也是关闭的,从它下方的灰色边框引起少量颜色渗入下面的紫色行

答案 1 :(得分:1)

好的,我这次真的想通了。 Cocos2D为CCTextures添加了一些抗锯齿功能。要阻止它这样做,你需要调用它:

[[mySprite texture] setAliasTexParameters];

要将其重新打开,请调用此方法:

[[mySprite texture] setAntiAliasTexParameters];