티스토리 뷰

프로그래밍/게임 개발

[Cocos2D-X] 해상도 고정시키기

터프 프로그래머 2012. 1. 14. 14:40
안드로이드의 경우엔 다양한 해상도 때문에 골머리를 앓는 경우가 많다.

다들 알겠지만 cocos2d-x로 안드로이드 프로젝트를 만들 때에는
cygwin, ndk 등을 이용하여 안드로이드 프로젝트를 생성하는 create_android_project.bat 파일을 실행하고
이렇게 해서 만들어진 안드로이드 프로젝트에 기존에 만든 cocos2d-x 데스크탑용 소스들을
넣은 뒤 컴파일해서 안드로이드에 포팅한다.

난 cocos2d-x가 C++로 작업하며 윈도우를 띄워서 작업하다가 그대로 안드로이드와 iOS에 올릴 수 있다느 사실을
굉장히 매력적으로 느꼈으나 가장 큰 문제인 해상도 문제를 어떻게 해결해야할지 몰라서 꺼리고 있었는데
열심히 해결 방법을 찾기 위해 노력한 결과 그 방법을 찾아낼 수 있었다.

뭐 현재 해상도를 파악해서 어떻게 수학적으로 해결 하는 방법도 있으나 내가 찾은 방법이 편하다는 것은 확실하다.

나 같은 경우에는 안드로이드에서 가장 보편적인 해상도인 800*480을 기준으로 게임제작을 하는데
800*480의 가상세계에 오브젝트들을 배치하고 그것을 실기기의 해상도에 맞춰 Stretch하는 방식을 사용한다.

create_android_project.bat 파일로 생성한 프로젝트를 이클립스에서 소스코드 임포트 방식으로 프로젝트 생성을 하면
왼쪽의 그림과 같이 임포트가 된다.
거기서 jni/helloworld 폴더 안의 main.cpp를 열면 오른쪽의 소스코드가 나온다.
거기서 view->create(x,y) 메소드를 이용하여 해상도를 설정할 수가 있다.

위에서 말한 것처럼 나는 800*480을 기준으로 게임제작을 하기 때문에 view를 480, 800 크기로 생성을 하였다.
실제 cocos2d-x의 AppDelegate.cpp 에서도 윈도우 생성을 할 때 480, 800으로 생성을 하는데
이것은 내가 CCDirector 클래스에서 Orientation을 Landscape로 설정을 해뒀기 때문에
이렇게 설정을 해야 하는 것이 아닌가 싶다.


이 방법이 완벽한 방법은 아니다.
나 같은 경우에는 큰 회사들이 만드는 것 처럼 여러 해상도로 리소스를 제작해서 게임 퀄리티를 매우 높이는 방법을 쓰기에는
부적합 하기 때문에 저렇게 간단하게 처리할 수 있는 방법을 쓰는 것이다.
실제로 좋은 퀄리티의 게임을 모든 해상도에서 즐기기 위해서는 scaleFactor 등을 이용하는 것 같다. 



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday