코로나(Corona SDK) 실시간 대화방(https://open.kakao.com/o/gY4dAwc)에 올라온 질문입니다.

Q: local widget = require “widget” 은 뭘 의미하나요?
A: 우선 모듈에 대해서 알아야 합니다. 모듈(Module)은 클래스(Class)와 유사한 개념인데요. 단순히 파일을 나누기 위해서도 사용하고 재사용성을 높이기 위해 사용하는 방법이에요. 즉, 위 코드는 위젯을 사용하기 위해 ‘widget’이라는 모듈(파일)을 불러들인 것이랍니다. 그렇게 하면 widget.newButton() 처럼 버튼을 여러개 생성할 수 있게 됩니다.

홍길동 모듈이 있다고 가정해보죠. 홍길동.lua 파일이에요.

[홍길동.lua]

1
2
3
4
5
6
local 홍길동 = {}
홍길동.create = function ()
    local 복제된홍길동 = display.newImage("홍길동.png", 0, 0)
    return 복제된홍길동
end
return 홍길동

[main.lua]

1
2
3
4
local 홍길동Class = require("홍길동")
local1 = 홍길동Class.create()
local2 = 홍길동Class.create()
local3 = 홍길동Class.create()

이렇게 쓸 수 있답니다. (-:

* 루아는 한글 변수를 쓸 수 없답니다. 의미로 받아들이시고 실제 위 코드를 영문으로 바꾸면 동작합니다.