2012-06-29 2 views
1

온라인 문서에서 더 많은 정보를 찾으려고 노력했지만, 아직 조금 부족합니다.Corona SDK 및 Retina/Multi-res의 텍스쳐 아틀라스

새 텍스처 아트라스 API로 여러 해상도를 처리하는 적절한 방법은 무엇입니까? 각 해상도마다 다른 데이터 파일을 제공해야합니까? Corona SDK가 자동으로 올바른 파일을 찾거나 직접 해상도 검색을 처리해야합니까?

이것이 적용되는 문서 페이지의 포인터 일지라도 충분합니다.

대단히 감사합니다!

답변

0

코로나 올바르게 이미지 파일 (.PNG 또는 .jpg)을로드하고 ... 그것을 확장 수동으로 시트 파일을로드 할 것이다

모든 작동 시트 파일을 만드는 데 문제가 있으면 해상도, 올바른 방법은 해당 해상도에 맞는 시트를 수동으로로드 한 다음 .xScale 및 .yScale을 사용하여 해상도를 수정하는 것입니다.

나는지도 책에 대한 내 자신의 해상도 처리 코드를 게시 할 예정입니다 : 2 @ 4 @되는 접미사, 그리고 정확히 0.5 존재 :

-- 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가) 사용 설정을 사용 왜냐하면 우리 내부의 일부 이유 때문입니다.

+0

게시 해 주셔서 감사합니다. 이유는 모르겠지만 답변을 +1 할 수있는 권한을 부여하지 않습니다. – DirtyHarry