我试图在在线文档中找到更多信息,但他们在这方面仍然有点缺乏。
使用新纹理atlas API处理多种分辨率的正确方法是什么?我应该为每个分辨率提供不同的数据文件吗? Corona SDK会自动找到正确的文件,还是需要自己处理分辨率检测?
即使只是指向应用此文件的文档页面的指针也足够了!
非常感谢!
答案 0 :(得分:0)
Corona将正确加载图像文件(.png或.jpg),并手动加载图纸文件然后缩放...
如果您在制作适用于所有分辨率的工作表文件时遇到困难,一种好方法是手动加载适合该分辨率的工作表,然后使用.xScale和.yScale来更正分辨率。
我将发布我自己的Atlas解决方案处理代码:
-- Mauricio Gomes
-- Kidoteca point class
local scaleString = "";
local scaleNumber = 1;
local errorMessage = "ERROR: Please call autoResolution.init";
local errorFunction = function() print(errorMessage); return errorMessage end;
local autoResolution = {};
function autoResolution.requireSheet( sheet )
if autoResolution.SCALE == errorFunction then
return errorFunction();
end
sheet = string.gsub(sheet, "/", ".");
return require(sheet .. scaleString).sheet;
end
function autoResolution.requireInfo( sheet )
if autoResolution.SCALE == errorFunction then
return errorFunction();
end
sheet = string.gsub(sheet, "/", ".");
return require(sheet .. scaleString);
end
function autoResolution.imageName( fileName, extension )
if autoResolution.SCALE == errorFunction then
return errorFunction();
end
return fileName .. scaleString .. "." .. extension;
end
-- variables about the scale settings
function autoResolution.init()
if display.contentScaleX <= 0.25 then
scaleString = "@4";
scaleNumber = 0.25;
elseif display.contentScaleX <= 0.7 then
scaleString = "@2";
scaleNumber = 0.5;
end
autoResolution.SCALE = scaleNumber;
end
autoResolution.SCALE = errorFunction;
return autoResolution;
init函数当然使用我的公司(Kidoteca)使用的设置:后缀为@ 2和@ 4,而且由于我们的一些内部原因,不完全是@ 2。