cocos2d-x 로 게임을 만드는 경우 많은 사람들이...
director->setDisplayStats( true )
...기능을 활용합니다.
보통은 아래와 같이 출력됩니다.
하단에 적절한 크기로 출력되죠.

그러나 저해상도 게임을 만들다 보면 Display Stats 가 불편할 정도로 크게 나오게 됩니다.
Display Stat의 크기는 일정한데 해상도가 작아지니 당연한 일입니다.

256 x 160 의 해상도로 만드는 게임의 화면을 봅시다.
이 화면을 보면서 개발하면 아마 눈이 빠지겠다 싶을겁니다.

그래서 Window Frame Size 를 Design Resolution 의 배수로 설정해서 큰 화면에서 쾌적한 개발을 진행하는 꼼수를 사용하게 됩니다.
제가 개발하는 게임에서는 5배가 적용되어 1280 x 800 으로 Window Frame Size 가 설정됩니다.
그리고...
그대로 커집니다. o_o
불편하죠. 매우 불편합니다. 게다가 안티가 먹어서 흉하기 까지 합니다.
그러므로 약간 손을 보기로 했습니다.
엔진 코드에는 가급적 손을 대지 않는것이 저의 원칙이지만 이 경우에는 잠시 원칙은 접어두기로 했습니다.
CCDirector.cpp 파일을 엽니다. 그리고...
void createStatsLabel();
...함수를 찾아갑니다.
중간에 보면 아래와 같은 코드가 있습니다.
float scaleFactor = 1 / CC_CONTENT_SCALE_FACTOR();
이 코드를 아래와 같이 바꿔줍니다.
float customScaleRate = ( _openGLView->getDesignResolutionSize().height / _openGLView->getFrameSize().height );
float scaleFactor = ( 1 / CC_CONTENT_SCALE_FACTOR() ) * customScaleRate;
그리고 또 아래에 보면 다음과 같은 코드가 있습니다.
const int height_spacing = 22 / CC_CONTENT_SCALE_FACTOR();
이 코드도 바꿔줍니다.
const int height_spacing = ( 22 / CC_CONTENT_SCALE_FACTOR() ) * customScaleRate;
Design Resolution 기준으로 나오는 Display Stats 를 Window Frame Size 에 맞추어 나올수 있도록 Scale 을 적용해주는 코드입니다.
그리하여 평화가 찾아옵니다.
