1

私はオンラインドキュメントでより多くの情報を見つけようとしましたが、それでもこの点については少し不足しています。

新しいテクスチャアトラスAPIで複数の解像度を処理する適切な方法は何ですか?解像度ごとに異なるデータファイルを提供する必要がありますか?Corona SDKは正しいファイルを自動的に検出しますか、それとも解像度の検出を自分で処理する必要がありますか?

これが適用されるドキュメントページへのポインタでさえ十分です!

どうもありがとうございます!

4

1 に答える 1

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であり、私たちの内部的な理由により、正確には0.5が@2ではありません。

于 2012-08-15T21:23:05.593 に答える