我有一个用 Cocos2d-x 编写的多平台 iOS/Android 游戏。我只有一组图像可供使用(我只在高分辨率设备之后)根据设备的分辨率进行缩放。例如,所有图像都适用于 iPad,但如果您使用的是 Galaxy S,则图像位置和缩放受 GalaxyS_screenWidth/iPadscreenWidth 的影响。
这适用于所有 Android 设备以及 iPad、iPad2 和旧 iPhone,但使用 Retina iPhone 时会出现问题。在 iPhone 4 上,我所有的图像看起来都非常像素化,这是因为图像被缩放到 iPhone 非视网膜分辨率,然后再放大以填满屏幕。
我尝试启用 Retina 模式,图像是预期大小的一半(可能是由于使用了使用点的 get winsize()),手动缩放会导致其他类型的问题。我尝试了很多选项和属性但无济于事,那我现在该怎么办?
编辑:这不仅仅是一个图形问题,因为文本会自动缩小然后放大并出现像素化。
编辑 2:字体是位图,所以我很糟糕。但我不想使用视网膜,因为默认情况下所有图像都已经是视网膜。我所有的图像都是为 iPad 设置的,所以对于 iPhone 4,我只是将它们缩小一点。这适用于安卓手机。
例如,我有一个图像,取决于通过以下方式获得的屏幕分辨率getwinsize()
:
如果当前分辨率宽度为 1024,则图像保持不变。如果当前分辨率宽度为 900,则图像将缩放 900/1024,没问题。如果设备是 iPhone 4 分辨率宽度是 480,所以图像被缩放 480/1024,然后 cocos2d-x 自动将生成的图像缩放 2 从而像素化。我尝试使用getwinsizeinpixels
,我尝试增加屏幕大小,我尝试了很多东西,但没有任何开箱即用的方法,除非我要重做我的许多代码。
那么问题来了,我怎么能让该死的引擎把 iPhone 4 当作一部分辨率为 960x640 的 Android 手机呢?