Composer는 코로나의 공식적인 씬(Scene, 장면) 매니저 입니다. 근데 씬 매니저가 뭐죠? 탭 메뉴를 생각했을 때 하나의 메뉴마다 보여지는 화면이 다르죠? 그걸 하나의 씬이라 생각하면 됩니다. 과거엔 Storyboard라는 모듈을 이용했습니다.
composer1

게임은 아래와 같이 씬이 나눠지겠죠.

composer2

아래 ‘씬 템플릿’으로 구성된 .lua 파일이 바로 씬 입니다.
씬 템플릿: http://docs.coronalabs.com/api/library/composer/index.html#scene-template

물론 모든 이벤트 리스너가 정의되어 있어야 하는 것은 아닙니다.
아래와 같이 MainScene.lua 파일을 만들고 씬이 처음 생성될 때 이미지를 보여주고 싶다면 create 이벤트만 구현하면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
local composer = require( "composer" )

local scene = composer.newScene()

function scene:create( event )

    local sceneGroup = self.view

    local img = display.newImage( sceneGroup, "Icon.png" )
    img.x = display.contentCenterX
    img.y = display.contentCenterY
end

scene:addEventListener( "create", scene )

return scene

main.lua에서 씬을 호출하는 방법은 아주 간단합니다.
– composer.gotoScene(): http://docs.coronalabs.com/api/library/composer/gotoScene.html

1
2
local composer = require("composer")
composer.gotoScene("MainScene", "fromLeft", 500) -- 왼쪽에서 오른쪽으로 0.5초 동안 이동하며 나타납니다.