私はオンラインドキュメントでより多くの情報を見つけようとしましたが、それでもこの点については少し不足しています。
新しいテクスチャアトラスAPIで複数の解像度を処理する適切な方法は何ですか?解像度ごとに異なるデータファイルを提供する必要がありますか?Corona SDKは正しいファイルを自動的に検出しますか、それとも解像度の検出を自分で処理する必要がありますか?
これが適用されるドキュメントページへのポインタでさえ十分です!
どうもありがとうございます!
私はオンラインドキュメントでより多くの情報を見つけようとしましたが、それでもこの点については少し不足しています。
新しいテクスチャアトラスAPIで複数の解像度を処理する適切な方法は何ですか?解像度ごとに異なるデータファイルを提供する必要がありますか?Corona SDKは正しいファイルを自動的に検出しますか、それとも解像度の検出を自分で処理する必要がありますか?
これが適用されるドキュメントページへのポインタでさえ十分です!
どうもありがとうございます!
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であり、私たちの内部的な理由により、正確には0.5が@2ではありません。