2013-05-30 14 views
6

내 게임은 고화질이며 많은 텍스쳐 메모리를 차지하면서 많은 HD 이미지와 스프라이트 시트를 사용합니다. 결과는 내 장면이로드되기 전에 몇 초 동안 스윙이 발생하기 전에 못생긴 검은 색 화면이 나타납니다. 그래서 로딩 화면을 만들고 싶습니다. 사실 둘. 하나는 내 주 메뉴이고 다른 하나는 내 게임입니다. 하루 종일 많이 검색했지만 로딩 화면을 만들 수있는 단계를 찾지 못했습니다.Corona SDK에서 로딩 화면을 만들려면 어떻게해야합니까?

로딩 화면를 가졌, 단지 텍스트 "LOADING ..."내 다음 화면 자산이로드 얼마나 많은 계산하는 비율이 다른 텍스트를 말과 함께 :

내가 뭘 원하는지.

- 끝나면로드하는 화면을 삭제하고 메인 메뉴 장면 또는 내 게임 장면을 지체없이 시작하고 싶습니다.

Android 용으로 개발 중이지만 iPhone에 대한 의견도 환영합니다.

내 스토리는 내 장면이로드되고 백분율로 표시되는지 어떻게 알 수 있습니까? newImageRects는 어디에 두어야합니까? 나는 하나의 튜토리얼을 찾을 수 없었다.

내가, 당신이 장면에서 사용하기 전에 모든 이미지를 미리로드 가정

답변

7

: 게임 메인 메뉴로 이동해야 할 때, 내 말은 로딩 화면 를 제거합니다.

local loadingText = display.newText("LOADING ...", 0, 0, native.systemFont, 24) 
myText:setTextColor(255, 255, 255) 

local function loadAlImages() 
    --create all your images here. 

    --remove LOADING text 
end 

--if you still see black screen at the start try to increase delay > 500 ms 
timer.performWithDelay(500, loadAlImages, 1) 
이제 .isVisible = 거짓와 때를와 스프라이트, 표시하고 다음 화면 자산은 당신이 당신의 이미지를 만들어야합니다로드 얼마나 많은 계산하는 비율이 다른 텍스트를 업데이트 할 경우

모두 생성 된 변경 .isVisible = true. 일부 이미지를 만든 후에 백분율 텍스트를 업데이트하는 코드를 넣을 수 있습니다.

local loadingText = display.newText("LOADING ...", 0, 0, native.systemFont, 24) 
myText:setTextColor(255, 255, 255) 

local function loadAlImages() 
    --create some images here. 
    --update text's percentage to 20% 
    --create some images here. 
    --update text's percentage to 50% 
    --create some sprites here. 
    --update text's percentage to 90% 
    --change **.isVisible=true** for all your created files but **.alpha=0** 
    --update text's percentage to 100% 
    --remove LOADING text 
    --transition .alpha of all images to 1 
end 

timer.performWithDelay(500, loadAlImages, 1) 

나는 하나 개 표시 그룹에있는 모든 이미지 파일을 넣을 수 있다고 생각하고이 그룹에 .isVisible = 거짓을 설정합니다. 이렇게하면 코드 줄을 절약 할 수 있습니다. (α)에 대한 동일 = 0


은 여러 가지가 있습니다. 변수를 선언 한 다음 loadAlImages() 함수에서 변수를 만들거나 테이블에 변수를 모두 만들고이 테이블을 사용하여 원하는 이미지를 얻을 수 있습니다. 첫 번째 예 : 테이블에

local image 

local function loadAlImages() 
    --create some images here. 

    image = display.newImageRect("image.png", 100, 100) 
    image:setReferencePoint(display.CenterReferencePoint) 
    image.x = display.contentCenterX 
    image.y = display.contentCenterY 

    --create some sprites here. 
end 

예 :

local imagesTable = { } 

local function loadAlImages() 
    --create some images here. 

    local image = display.newImageRect("image.png", 100, 100) 
    image:setReferencePoint(display.CenterReferencePoint) 
    image.x = display.contentCenterX 
    image.y = display.contentCenterY 
    imagesTable.image = image 

    --create some sprites here. 
end 

더 많은 정보는 :
http://lua-users.org/wiki/ScopeTutorial
http://www.coronalabs.com/blog/2011/06/21/understanding-lua-tables-in-corona-sdk/
http://lua-users.org/wiki/TablesTutorial

+0

모든 이미지와 스프라이트가 로컬에 있어야합니까? 또는 글로벌? 기능을 추가하려면 "탭"이벤트와 함께 그 중 일부를 사용하고 싶습니다. – user2347313

+0

대단히 감사합니다! 나는 투표했다 – user2347313

1

..

display.newImage() 

기능은 그렇게 할 것입니다. 다음은 수행해야 할 작업입니다.

1. 이미지가 없지만 display.newImage() 기능으로 이미지로드 중 하나를 호출하십시오. 로딩 화면이 표시됩니다. 전화를 한 후 500ms를 기다린 후 다른 모든 이미지를 호출하십시오. 당신이 당신의 HD 이미지와 spritesheets를로드 할 위치를 함수를 loadAlImages()를 작성해야합니다 귀하의 main.lua에서

local loadImg = display.newImageRect("loading.png" .. blah blah) 

timer.performWithDelay(500, function() -- load all other images then main() end, 1) 
+0

나는 그것을하지 않습니다. 내 main.lua 파일 인 menu.lua 파일이 있습니다. 거기에 모든 이미지를로드하지만, 실행하려고하면 몇 초 동안 검은 색 화면이 나타나고 시작됩니다. 파일을 미리로드하려면 어떻게해야합니까? 무슨 .lua 파일에 있니? 모든 .lua 파일이 자율적이지는 않습니까? 나는 코로나에 완전히 새로운 사람입니다. – user2347313

관련 문제