생산성이 높은 게임엔진 중 하나인 코로나 SDK를 이용하여 안드로이드, 아이폰 뿐만 아니라 윈도우 환경의 어플리케이션 등 매우 다양한 환경에서 동작하는 어플리케이션을 만들 수 있습니다.
우선 Corona SDK의 기초적인 구조를 파악하기 위해 설치 후 첫 어플리케이션 프로젝트를 생성하였을 때 나오는 파일들 중 build.settings와 config.lua를 살펴보겠습니다.
코로나 SDK 공식 홈페이지에서 Corona SDK를 다운받아 설치하게 되면 생성되는 Corona Simulator.exe를 실행합니다.
위와 같이 코로나 시뮬레이터가 실행된 상태에서 New Project를 클릭하여 Application Name에 어플이름을 입력한 후에 Project Template으로 Blank를 선택하여 생성하게 되면 생성되는 프로젝트 문서로는 build.settings와 앱아이콘그림파일들, config.lua, main.lua 파일이 생성됩니다.
빌드시기의 속성정보를 정의하는 파일 build.settings
먼저 build.settings파일을 살펴보면
build.settings파일은 lua문법으로 작성되어 있는 파일로, 빌드시기의 속성정보를 정의하는 파일입니다.
기본적으로 생성된 파일의 내용을 살펴보면, 가장 상단의 테이블(객체)로 settings가 있고
그 안에 앱의 화면 방향을 설정하는 orientation 테이블, 외부파일을 연결하는 excludeFiles 테이블, iphone전용의 설정을 담당하는 iphone 테이블, 그리고 android전용의 설정을 담당하는 android 테이블이 있습니다.
특히 android 테이블에서는 usesPermissions를 서브테이블로 둬서
android.permission.INTERNET 이나 android.permission.WRITE_EXTERNAL_STORAGE 같은 앱의 퍼미션을 설정할 수 있습니다.
build.settings 테이블 종류(구조)
어플리케이션의 설정 정의 파일 config.lua
config.lua파일은 마찬가지로 lua문법으로 작성되어 있는 파일로, 파일명 그대로 앱의 설정을
정의하는 파일입니다.
제일 바깥에는 application 테이블이 있고, 안에는 content테이블과 notification테이블이 있습니다.
content테이블에는 대표적으로 앱의 해상도를 설정할 수 있는데요.
config.lua 테이블 종류(구조)
content테이블에서 정의하는 width와 height값은 항상 세로모드를 기준으로 하므로 가로모드 앱이라 할지라도 세로모드 기준으로 width값과 height값을 설정해줘야 합니다.
그리고 해상도에서 핵심이라 할 수 있는 scale 값은
letterbox, zoomEven, adaptive, zoomStretch 이렇게 4가지 값이 들어 갈 수 있는데
letterbox과 zoomEven은 둘다 가로세로 비율을 유지한 채 그래픽을 기기의 스크린에 채우는 스케일 방법입니다. 차이점은 letterbox는 그래픽의 가로세로비율이 기기의 가로세로비율과 다를 경우 그래픽을 완전히 보여주고 남는 부분은 검은색으로 처리될 수 있고, zoomEven의 경우 그래픽을 비율에 맞춰 키워서 기기의 화면에 검은 부분 없이 채우기 때문에 그래픽이 잘려나갈 수 있습니다.
즉, letterbox는 그래픽을 온전히 보존할 수 있는 방법이고, zoomEven은 그래픽이 짤리더라도 기기 화면 전체를 사용할 수 있는 방법이라고 할 수 있습니다.
adaptive 방식은 android의 경우를 예를 들면 dp값을 이용하여 천차만별인 기기별 해상도에서 같은 물리적인 길이로 표현하는 것처럼의 효과를 가져다 줍니다. 즉, 버튼의 가로가 물리적으로 자를 들고 휴대폰에 대고 재어보았을 때 2cm로 측정된다면 천차만별의 해상도인 어느 기기에서든 마찬가지로 대략적으로 2cm의 길이의 버튼이 보인다는 것입니다.
zoomStretch의 경우 가로세로비율을 보장하지 않아 그래픽과 기기의 가로세로비율차이에 따라 가로 또는 세로가 좀 더 늘어난 상태가 될 가능성이 있고, 그래픽이 다 표현되지 못하고 화면 밖으로 잘리는 경우는 없습니다.
main.lua는 어플리케이션이 첫 실행되었을 때 실행되는 파일로 이 부분에 대한 내용은 다음에 개발 소스와 함께 루아문법을 분석하며 구조를 파악해보도록 하겠습니다.
혹시 수정할 내용이 있다면 댓글로 알려주시면 감사하겠습니다~
'CORONA SDK' 카테고리의 다른 글
[Corona SDK]main.lua 및 컴포저, 씬 기초분석 (0) | 2016.01.04 |
---|