블로그 이미지

냥날의 티스토리

Rss feed

cocos2d-x Multi-resolution 지원 (Retina 등)

iPhone/cocos2d 2013.03.03 21:36

원본 링크; http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Multi_resolution_support


코코스 버전 2.0.4에서부터 retina 라는 개념이 사라지고 안드로이드의 여러 가지 해상도를 일반적으로 지원하기 위하여 두 가지 개념이 도입되었다.


designResolutionSize

실제 디바이스의 해상도와 상관없이 임의의 좌표계를 설정할 수 있다. 해상도가 바뀌더라도 같은 UI 디자인을 사용한다면 이 개념만으로도 여러 가지 해상도의 디바이스를 지원할 수 있다. 

CCEGLView::sharedOpenGLView()->setDesignResolutionSize(width, height, policy) 


resourceDirectory의 사용

해상도에 따라 다른 크기의 리스소를 사용한다면 resourceDirectory를 다르게 지정함으로서 쉽게 해결할 수 있다. 예를 들어 ./iphone 디렉토리에는 저해상도 이미지 파일들을 넣어 놓고, ./retina 디렉토리에는 레티나 이미지(x2,x2 해상도)를 같은 이름으로 넣어 두는 식이다. 이를 위한 API는 CCFileUtils::sharedFileUtils()->setResourceDirectory() 이다.


contentsScaleFactor

designResolution에 대한 resourceSize의 비율. 예를 들어 레티나 디스플레이에서 이미지를 표시할 때, 레티나 전용 고해상도 이미지를 사용할 수도 있지만 저해상도 이미지를 2배스케일로 표시할 수도 있다. 이 일을 할 수 있게 해 주는 값이다. 보통 width나 height 중 하나의 값으로 스케일을 결정하게 된다. 


policy

(1) Exact Fit - designResolution 전체를 디바이스 화면에 맞춘다. 가로세로 비율 왜곡이 일어날 수 있다.

(2) NoBorder - 가로세로 비율을 유지한 채 꽉 차는 화면으로 만든다. 화면의 일부가 잘려나가 보이지 않을 수 있다.

(3) Show All - 가로세로 비율을 유지한 채 모든 화면을 보이게 만든다. 레터박스가 나타날 수 있다.


visibleArea

NoBorder 정책을 사용하면 디자인 화면 상의 일부가 잘려나가 보이지 않을 수 있다. 따라서 어떤 해상도에서도 보이는 visibleArea를 얻어서 사용해야 한다. 

관련 API: CCDirector::sharedDirector()->getVisibleOrign() CCDirector::sharedDirector()->getVisibleSize()

이 visiblePoint를 계산하는 방법을 알고 싶다면 TestCpp의 VisibleRect를 참고하시라.


저작자 표시
신고

'iPhone > cocos2d' 카테고리의 다른 글

cocos2d-x Multi-resolution 지원 (Retina 등)  (0) 2013.03.03

밀리언아서 역한돌 레벨

메모 2013.02.01 10:15

금요일 기준.


4성 역한돌

  • 59렙 -> 70렙
  • 63렙 -> 75렙
  • 68렙 -> 80렙
  • 65렙 -> 77렙 -> 90렙
  • 62렙 -> 74렙 -> 86렙 -> 100렙


3성 먹이로 키우기

  • 62렙 -> 74렙 : 3성x36장 = (600G+300G)x36 = 32400


4성 먹이로 키우기 (60렙 이상이고 3성카드가 별로 없다면 역돌이 답이다.)

  • 59렙 -> 70렙 : 4성x12장 = (3300G+300G)x12 = 43200
  • 62렙 -> 74렙 : 4성x14장 = (3300G+300G)x14 = 50400


저작자 표시
신고

'메모' 카테고리의 다른 글

밀리언아서 역한돌 레벨  (0) 2013.02.01
One more time, one more chance  (0) 2011.06.05
왼손잡이와 가마방향  (0) 2011.05.30
콘솔과 PC 온라인 연동  (0) 2010.12.27
양배추 샐러드 레시피  (0) 2009.12.30
부엌, 키친이 되다.  (0) 2009.12.11

확밀아 하면서 느낀 점

게임개발/잡상 2013.01.04 11:12

확밀아를 해 보니 RPG 등의 성장형 모험게임의 본질은 살리면서 좀 더 단순하게 만들 수 있지 않을까라며 생각했던 여러가지 요소들이 이미 잘 구현되어 있더라.


1. 전투 등의 게임플레이가 미미해도 동기부여(+성취,보상)만 가능하면 재미있다.


2. 성장은 쉽게 동기부여가 되며 재미있다.


3. 복잡한 시스템이 존재해도 현재 필요한 사항을 하나씩 가이드해 준다면 시스템이 좀 복잡해도 상관없다. 특히 가이드가 요정/사람처럼 인격체면 훨씬 따라 하게되지 않을까. (젤다의 요정, 혹은 확밀아의 '엘'과 같은 요정)


4. 확률은.. 이성적으론 아닌 걸 알면서도 내 맘을 속이는 동기를 만든다. 특히 확률 슬롯머신에서 한 번 당첨되면 완전 동기부여 후, 겉잡을 수 없는 수렁 속으로..


5. 아이템에 하수구 기능을 추가하면 모든 아이템을 의미있게 만들 수 있다.


6. 탐험을 위해 캐릭터를 움직일 필요가 없는 건 아닐까? 유저가 탐험에서 바라는 것은 우연한 조우와 보상이 아닐까?


7. 핸드폰 게임에서 3D는 필요없지 않을까? 핸드폰 게임에서 2D의 경우 스프라이트시트 애니메이션을 안해도 괜찮지 않을까? 이렇다면 프로그래머도 아티스트도 꽤 쉽게 게임리소스를 만들 수 있을 듯.


8. 스토리 컨텐츠를 한번에 다 주는게 아니라 짧게 끊어서 주면, 덜 지겹고 성장 동기부여도 되지 않을까?


9. 디스가이아류의 아이템 레벨업을 캐주얼 게임에 도입해도 괜찮지 않을까? 컨텐츠 뻥튀기 효과가 있지 않을까?


덤으로..

드래곤 플라이트를 처음 해 봤을 때 실제 구현에 들어간 리소스가 엄청 적다는 것을 보고 놀랐었다.확밀아를 보면서 이 부분에 대해서는 한 번 더 놀랐다. 지역 탐색은 그림 1장. 카드는 2D 그림 4장(캐릭,만렙캐릭,배경2종)으로 구성되어 있는데 이걸로 아이템, 전투를 모두 소화한다. 놀랍다. 그림 1장 그리면 지역 1개 추가. 그림 4장 그리면 아이템 1개 추가다.

저작자 표시
신고

'게임개발 > 잡상' 카테고리의 다른 글

확밀아 하면서 느낀 점  (0) 2013.01.04
API를 통한 컨텐츠의 확장  (0) 2012.08.13
TOTAL 27,750 TODAY 17