반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


우선 어제 했던 코드에 이어서 할까요?
진도 나가기 전에 소개해 드릴 것은.
코로나는 메모장에서부터 이클립스나 Xcode 같은 개발툴 등에서 개발 할 수 있습니다.

코로나에서 추천하는 에디터가 윈도우즈하고 맥에 각각 한개씩 있더라구요.
맥 - TextWrangler http://www.barebones.com/products/textwrangler/download.html
윈도우즈 - Notepad ++  http://notepad-plus-plus.org/

관심 있는 분들은 다운 받아서 사용해 보세요.
어제 전체 코드는 아래와 같습니다.

print( "Hello World" )

local textObject = display.newText( "Hello World!", 50, 50, nil, 24 )
textObject:setTextColor( 255,255,255 )

local button = display.newImage( "endinggreen.png" )
button.x = display.contentWidth / 2
button.y = display.contentHeight - 200

function button:tap( event )
        local r = math.random( 0, 255 )
        local g = math.random( 0, 255 )
        local b = math.random( 0, 255 )
 
        textObject:setTextColor( r, g, b )
        media.playEventSound( "pop2_wav.wav" )
end
button:addEventListener( "tap", button )

endinggreen.png 하고 pop2_wav.wav 파일은 여러분에 맞게 사용하시면 됩니다.

이번엔 폰트를 바꿔 볼까요?
"Zapfino" 라는 폰트가 있나본데요.
local textObject = display.newText( "Hello World!", 50, 50, nil, 24 )  를
local textObject = display.newText( "Hello World!", 50, 50, "Zapfino", 24 ) 로 바꿔보세요.


폰트가 바뀌었습니다.

그리고 아래코드를 한번 추가해 보세요.
textObject.rotation = 30;


그러면 글자가 기울어져서 나오죠?

이젠 아래 그림처럼 에뮬레이터에서 Window-View as 를 선택하시고 iPad 를 선택하세요.
윈도우즈 사용하시는 분들은 애플 디바이스 에뮬레이터가 없을 테니까 다른 태블릿을 선택하세요.


그럼 그림과 같이 에뮬 화면이 아이패드가 돼요.
그런데 화면이 커지는 바람에 글자나 그림 크기나 위치가 이상하게 변했죠?

이런 현상을 막기 위한 것이 config.lua 파일 입니다.
모든 기기에서 제대로 의도한 화면이 나오게 하는거죠.

이 config.lua 소스는 여러분이 받을 코로나 파일이 있는 폴더에 있습니다.
SampleCode-GettingStarted-HelloWorld 폴더로 가면 코로나가 제공하는 샘플 코드들이 있구요. 거기에 config.lua 파일이 있습니다.

이것을 그냥 지금 작업하는 폴더에 복사해 넣겠습니다.
그리고 나서 에뮬에서 다시 불러온 후 태블릿 디바이스로 바꿔 보세요.


자 이젠 화면이 제대로 나오죠?
그러면 config.lua 의 내용을 볼까요?

-- config.lua
application =
{
    content =
    {
        width = 320,
        height = 480,
        scale = "letterbox" -- zoom to fill screen, possibly cropping edges
    },
}

어플리케이션을 기본으로 아이폰 해상도인 320 - 480 으로 맞춥니다.
그리고 scale 은 letterbox 로 놓습니다.
그러면 해상도가 640 960인 아이폰4나 768 - 1024 인 아이패드에서 제대로 보입니다.

또 안드로이드 해상도인 320-480, 480-800, 480-854,600-1024 등에서도 잘 보입니다.
갤럭시 탭인 600-1024 까지는 시뮬레이터에서 화면을 제공해 주는데
그 이상인 드로이드 줌이나 갤럭시 탭 10.1 에서는 아직 테스트를 못 해 봤습니다.

아마 거기서도 잘 나오겠죠?

config.lua 에 대해서는 나중에 더 자세히 살펴 볼 기회가 있을 겁니다.

그럼 다음 시간에 다시 뵐께요.

Tip - 코로나에서 변수를 선언 할 때는 웬만하면 local로 선언하세요.
         메모리 관리에 훨씬 유리합니다.
반응형

'Corona SDK > Corona Doc' 카테고리의 다른 글

Physics Joints 예제 코드  (0) 2011.09.29
Physics Joint  (0) 2011.09.28
Physics Bodies 코딩 하기  (5) 2011.09.27
Physics Bodies  (0) 2011.09.26
Physics의 Collision Event  (0) 2011.09.26
Corona SDK Physics API  (1) 2011.09.22
정말 매력있는 코로나의 Physics Engine  (2) 2011.09.20
config.lua 파일과 build.lua 파일...  (2) 2011.09.19
코로나 프로그래밍 기본 규칙...  (0) 2011.09.15
폰트 및 config.lua 파일에 대하여.  (10) 2011.09.14
처음으로 코딩 해 보기  (2) 2011.09.12

Comment

  1. 익명 2011.11.17 21:20

    비밀댓글입니다

    • 솔웅 2011.11.18 04:26 신고

      아 예 현재는 이클립스에서는 지원을 해 주지 않는 군요.
      스크립트 언어니까 노트패드++ 를 사용해도 충분할 겁니다. 안드로이드 자바 처럼 이클립스에서 편리하게 디버깅 기능을 제공해 주면 좋겠지만...
      사실 개발하다 보면 API 찾는거랑 디버깅 하는 부분에서 이클립스로 개발하는 안드로이드가 생각 나더라구요...
      좋은 정보 감사합니다....

  2. Juhong 2012.01.19 13:38

    안녕하세요.. config.lua에서 궁금한게 있습니다.
    기본 해상도를 320 * 480으로 잡으셨습니다.
    크로스플랫폼이고 안드로이드의 경우에는 800 * 480 해상도가 거의 대다수라고 봐도 될 정도입니다.
    그렇다면 차라리 640 * 960을 기본 해상도로 하면 그림들을 리사이징 하는데 더 좋지 않을까요?
    (그래서 config.lua에 해상도를 640 * 960으로 수정했더니 잘 안되네요...)

    • 솔웅 2012.01.19 14:38 신고

      일단 640*960이 리사이징 하기 더 좋다고 생각한 이유와 640*960으로 했더니 리사이징할 때 어떻게 안 좋은지 알면 답변하기가 더 좋겠습니다.
      우선 제 글 config.lua 파일과 build.lua 파일... 글을 보시면 거기에 해상도에 맞게 리사이징 해 주는 방법이 있습니다. none,letterbox,zoomEven,zoomStretch 입니다.
      해상도를 제일낮은 320,480으로 정하고 작업하면 그 위의 해상도 맞추기가 좋습니다. 높은 해상도로 작업하면 낮은 해상도에 맞춰지지않습니다.
      그리고 해상도는 가로 세로 비율도 중요한데요. letterbox는 가로세로 비율을 유지하기 때문에 좌우에 검은 빈 공간이 생깁니다. zoomStretch는 화면에 꽉 차게 하기 때문에 이미지의 가로 세로 비율이 틀어져서 이미지가 약간 깨질 수 있습니다.
      질문에 답변이 됐는지 모르겠네요.
      이렇게 질문해 주셔서 감사합니다.

  3. Juhong 2012.01.19 19:36

    제가 320 * 480보다 640 * 960이 더 좋지 않을까 라고 생각했던 이유는
    낮은 해상도에서 높은 해상도로 그림 크기 변경을 할 때(포토샵에서)
    그림이 많이 깨졌던 것을 기억해서 그렇구요.
    특히 좁은 공간에서 작업하던 것을 넓은 공간으로 넓혀버리는 셈이 되니까
    좁은 공간에 맞춰서 작업을 하면 아무래도 제한사항을 많이 받을 것 같아서요.
    letterbox나 zoomStretch..... 뭐 그런건 대충 이해를 하겠더라고요.

    • 솔웅 2012.01.20 06:29 신고

      제가 추천 드리고 싶은 방법은
      일단 320*480으로 작업한 것을 scale을 letter box로 하고 여러 디바이스에서 화질을 평가하세요.
      (단 좌우에 검은 공간이 생길겁니다.)
      그런 식으로 display되도 괜찮으시면 그대로 하시면 되고 해상도별로 깨지지 않게 이미지를 쓰고 싶다라고 하시면 ...
      프로그램 중간에 화면 width,height를 구해서 거기에 맞게 작업한 이미지들을 불러와서 display하시는 방법이 있습니다.
      각 해상도별 이미지들을 별도로 작업해야 겠죠.
      폴더별로 분리해 놓고 각 이미지 객체 불러오는 클래스를 따로 만들어서 관리하면 편하겠죠.(width와 height를 parameter로 받는 클래스요)
      buil.settings에서 아이콘 세팅하는 것을 보면
      CFBundleIconFiles = {
      "Icon.png",
      "Icon@2x.png",
      "Icon-72.png",
      },
      이 부분이 있을 겁니다.
      해상도별로 이미지를 다 따로 만들어서 그 해상도에 맞는 이미지를 쓰는 방법입니다.
      아이콘 뿐만이 아니라 다른 이미지들도 이렇게 별도로 만들어서 코드내에서 해상도에 맞게 불러오셔야 할 것 같습니다.
      감사합니다.

  4. 익명 2012.01.20 09:21

    비밀댓글입니다

    • 솔웅 2012.01.20 11:02 신고

      질문 하실게 있으시면 얼마든지 댓글 다셔도 됩니다.
      제가 가급적 이 블로그에 관한 사항은 블로그 내 댓글을 통해서만 받으려고 합니다.
      문의사항 있으시면 언제든지 댓글 달아주세요.
      감사합니다.

  5. Juhong 2012.01.20 17:38

    네. 그럼 앞에서 말씀해주신 config.lua에서 이미지 크기를 실기기 해상도에
    따라서 다른 이미지 파일을 선택해서 출력하는 것에 대한
    포스팅을 해주시면 저 뿐만 아니라 다른 corona sdk를 접하는 많은 분들에게도 큰 도움이 될 것 같습니다. 특히 안드로이드에서 가장 많은 비율을 차지하는 800*480 크기의 화면에 적합한 방법을 소개해주시면 더 좋을 것 같구요.

    • 솔웅 2012.01.21 05:24 신고

      예 감사합니다.
      저도 안드로이드는 해상도 관련해서 회사에서 얘기하는 걸 들었거든요.
      이 참에 이미지가 깨지지 않도록 하는 효율적인 방법을 찾아서 정리 해 둬야 하겠네요.

      감사합니다.