[Corona SDK]main.lua 및 컴포저, 씬 기초분석
Corona SDK에서 project의 기본 생성 파일로,
이전에 살펴본 build.settings 와 config.lua는 앱의 설정 부분이라면
main.lua는 앱 실제 구현물의 첫 도입부로
main.lua와 컴포저, 그리고 씬에 대해 간단히 분석해보려합니다.
main.lua 분석
일단 Corona Simulator로 Project Template을 여러가지 선택하여 만들어보면 공통적으로
display.setStatusBar( display.HiddenStatusBar )
상태바를 감추는 코드와
local composer = require "composer"
composer.gotoScene( "menu" )
컴포저를 이용해서 씬이동을 하는 코드가 main.lua에 존재하였습니다.
두번째 코드 두줄을 좀 더 살펴보면,
require함수를 통해 composer 라이브러리를 불러와서
그 composer객체의 gotoScene함수를 이용하여 menu라는 씬으로 이동하는 코드입니다.
이때 lua문법상 함수 파라미터가 한 개일 경우 괄호 생략 가능하므로 require "composer"로 표현되고 require("composer")이어도 상관 없습니다.
컴포저의 기능 및 씬 구조
그러면 컴포저는 무엇인지 살펴보자면
컴포저(composer)는 코로나의 씬(화면) 생성 및 관리 라이브러리로,
씬은 각각 개별의 lua파일로 구분되는데 컴포저가 해당 lua파일을 씬으로 인식하기 위해서는
1) 씬 초기화 코드,
2) 4개의 리스너 함수 초기화,
3) 4개의 리스너 함수 구현,
4) 컴포저와 씬을 연결하기 위한 return문
의 구조로 lua파일을 프로그래밍하셔야 합니다.
(Project Template으로 Physics Based Game을 선택했을때)
우선, composer.gotoScene( "menu" ) 함수를 통해
이동한 씬인 menu.lua파일을 열어보면
컴포저가 씬으로 인식할 수 있도록
local composer = require( "composer" )
local scene = composer.newScene()
위와 같이 컴포저를 이용하여 새로운 씬을 만드는 씬 초기화 코드와
scene 객체 안에 있는 addEventListener함수를 이용하여
scene:addEventListener( "create",scene)
scene:addEventListener( "show",scene)
scene:addEventListener( "hide",scene)
scene:addEventListener( "destroy",scene)
create, show, hide, destroy 이벤트리스너를 등록하는 리스너 함수 초기화 코드.
그리고 그에 따른
리스너 함수 구현 코드
function scene:create( event )
end
function scene:show( event )
end
function scene:hide( event )
end
function scene:destroy( event )
end
그리고 마지막에 컴포저와 씬을 연결하기 위한 return scene문이 포함되어 있는 것을 확인할 수 있습니다.