这将是一个尴尬的问题,寻找一个可能不存在的答案,但如下。
我一直在用Corona开发一些简单的游戏,虽然这个功能在我测试过的大部分物理设备上都很好的工作,但一个主要的问题是布局。我知道你不可能为每一台设备完美的构建,但我想知道是否有一种通用的方法可以让一个应用程序在尽可能多的屏幕上看起来很好。我可以使用这些设备
据我所见,人们的目标是使用320x480作为缩放分辨率,然后将Corona提升到正确的设备分辨率(根据需要提供任何@2x图像),但这会导致按config.lua刻度设置进行字母装箱或裁剪。虽然它的比例尺是正确的,但有一个信箱并不好。
所以,我最好不要在配置文件中指定宽度和高度,而是首先使用某种屏幕检查来查找1.33 / 1.5 / 1.77高宽比吗?当然,对于Corona来说,开发人员在启动任何新项目时都会使用某种“典型的”设置?
谢谢
发布于 2012-03-20 12:29:12
我似乎已经找到了一个很好的解决方案,这是基于Ansca网站上的论坛帖子:http://developer.anscamobile.com/forum/2012/03/12/understanding-letterbox-scalling。
总之,config.lua应该如下所示:
application = {
content = {
width = 320,
height = 480,
scale = "letterbox",
xAlign = "center",
yAlign = "center",
imageSuffix = {
["@2x"] = 2,
},
}
}为旧设备创建360*570的背景图像。320x480屏幕将对图像稍作裁剪,对于较老的Android设备来说,它将很好地缩放。
在1140*720为iPad和iPhone视网膜创建背景图像--同样,这些图片将在安卓上进行缩放,并在iOS上被稍微裁剪。
例如,您通常会创建一个320x480图像,并将其显示为:
local bg = display.newImageRect("bg.png",320x480)
bg.x = display.contentWidth/2
bg.y = display.contentHeight/2。。相反,创建一个360x570背景并使用以下代码:
local bg = display.newImageRect("bg.png",360x570)
bg.x = display.contentWidth/2
bg.y = display.contentHeight/2这只是一个总结,所以请查看链接以获得更详细的说明。
发布于 2012-08-03 09:03:57
好吧,如果你想要不同设备的正确图像,你可以用一个略低于2的数字来进行缩放。例如:
application =
{
content =
{
width = 640,
height = 960,
scale = "zoomEven",
imageSuffix =
{
["-iphone3"] = 0.5,
["-ipad2"] = 1.066,
["-ipad3"] = 2.133,
},
}
}其中"background.png“为iphone4的640x960图像,而”背景-iphone3.png“为320x480 (您不需要这个,但它将减少对iphone3应用程序的内存需求)。“背景-ipad3.png”需要为1536x2048 (-ipad2为一半)。
当然,它并没有解决屏幕定位的高宽比问题,但是它解决了所有其他与gfx相关的问题。记住使用display.newImageRect,而不是display.newImage,否则您将看不到任何区别。
https://stackoverflow.com/questions/9769319
复制相似问题