2012-07-06 108 views
3

我是一个Cocos2d游戏开发者。我正在开发使用视网膜显示图像的游戏。视网膜显示图像看起来模糊和模糊。没有理由?

我已经使用zwoptex创建了带和不带高清后缀的纹理文件。

我在app-delegate[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"Background.plist"]; 我已经启用了视网膜显示屏YES[director enableRetinaDisplay:YES];添加这些zwoptex的plist纹理文件。

我已经使用了plist文件从plist无论我想要使用ccsprite *background = [CCSprite spriteWithSpriteFrameName:@"sample.png"];

我所包含的所有这些png文件都是高分辨率图像,大小分别为960*640480 * 320。但无论如何,当我在模拟器或iPhone中运行游戏时,图像看起来模糊和模糊。请人帮我解决这个问题... ..

(下面的图片被张贴在评论的例子。)

enter image description here

+0

可能有关? http://stackoverflow.com/questions/7462023/cocos2d-retina-support-not-working-anymore – andrewdotnich 2012-07-06 04:20:16

+0

这与我的问题无关。我已经使用该帖子中给出的相同准则创建了spritesheet。我可以查看视网膜显示图像,但看起来模糊和模糊。当我在模拟器或iPhone中运行游戏时,它不会显示原始图像分辨率。当启用视网膜显示设置为“是”或“否”时,仅显示模糊的图像作为输出。 – Blisskarthik 2012-07-06 04:43:01

+0

确保在调试器中以像素为单位的精灵大小是您想要的。我的意思是,例如,如果您使用视网膜设备,它的点数为200x100,像素为400x200。 – Morion 2012-07-06 08:00:25

回答

1

cocos2d的默认应用抗锯齿精灵。你需要关闭它:

[background.texture setAliasTexParameters]; 

希望这可以帮助。

+0

感谢您的回复。我用它,但结果相同。是否有其他解决方案来解决此问题 – Blisskarthik 2012-07-06 05:26:24

+0

这是否仅在视网膜显示屏上发生? – KDaker 2012-07-06 06:35:59

+0

它只显示模糊的图像,无论视网膜显示是否设置为yes或no。 – Blisskarthik 2012-07-06 07:31:02

1

您发布的截图(我冒昧地将它添加到您的问题中)显示它是从iPhone模拟器拍摄的,而不是iPhone(视网膜)模拟器拍摄的。因此它不会使用高清图像。

随着iPhone模拟器运行转到硬件 - >设备菜单,并选择iPhone(视网膜)作为设备。然后重启你的应用。

请注意,iPhone模拟器只会呈现颜色深度为16位的游戏,无论cocos2d或Mac中的设置如何。由于性能方面的原因,iOS模拟器渲染器仅限于16位渲染(它仅使用软件渲染,不使用硬件加速)。只有通过在实际设备上查看游戏,才能对图像质量做出判断。

要测试游戏是否实际加载HD资源或由于某种原因只加载SD图像,请尝试在没有SD图像的情况下运行它。如果游戏试图加载SD图像,则会导致错误。如果没有,它是加载高清图像和“模糊问题”有不同的原因。您还可以通过向CCFileUtil类方法fullPathFromRelativePath添加NSLog语句来记录加载哪些文件,该方法执行文件名更改以尽可能加载-hd图像。

你会发现即使微量的缩放或旋转应用于精灵可能让它看起来模糊,所以检查你是否碰巧做到这一点。混合模式中的任何更改(使用ccBlendFunc)也可能导致图像模糊。同时检查你的图像是完全不透明的(不透明度= 255)。

+0

感谢您的帮助猪头...我用攻克的难题[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888] ;.它清除了所有这些模糊的问题。再次感谢给我指导。 – Blisskarthik 2012-07-06 19:13:12