[코코스2d-x] 초보 독학(10) 해상도 적응!한마디로 IOS android windows!!

며칠 전에 제가 윈도우즈 밑에 쓴 프로그램으로...갑자기 안드로이드와 OS 플랫폼으로 이식이 필요합니다.그래서 여러 가지 골칫거리를 만났는데..가장 까다로운 것은 해상도 적응이다. 내 프로젝트의 사진은 모두 800x480의...
근데 아이폰 해상도가 480x320...이거 골치 아파..
그래서 많은 자료를 찾았습니다.아주 간단한 방법을 발견했다.그러나 다음이 필요합니다.
새로운 버전의 코코스 2d-x가 필요해요. 저는 2.0.1에서 2.0.3 버전으로...(cocos2d-x2.0.3 버전 사용)
AppDelegate.cpp
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

    // enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices.
//     pDirector->enableRetinaDisplay(true);
	CCEGLView::sharedOpenGLView()->setDesignResolutionSize(800, 480,kResolutionShowAll);

    // turn on display FPS
    pDirector->setDisplayStats(false);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    CCScene *pScene = HelloWorld::scene();

    // run
    pDirector->runWithScene(pScene);
    return true;
}

위 코드에서...다음 구절은 주석이 박힌 게 있는데...구판의cocos2d-x에도 이런 말이 있다.하지만 새 버전에는 매개 변수가 하나 더 있습니다.많은 그 매개 변수는 무슨 뜻입니까?
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(800, 480,kResolutionShowAll);

일일이 열거하는 건데...주석이 모든 걸 설명했는데..대략적인 말은.
kResolutionExactFit를 선택하면 전체 화면으로 확장됩니다.
kResolutionShowAll을 선택하면 늘어나지 않지만 상하 폭의 검은 변이 남습니다.
enum ResolutionPolicy
{
    // The entire application is visible in the specified area without trying to preserve the original aspect ratio. 
    // Distortion can occur, and the application may appear stretched or compressed.
    kResolutionExactFit,
    // The entire application fills the specified area, without distortion but possibly with some cropping, 
    // while maintaining the original aspect ratio of the application.
    kResolutionNoBorder,
    // The entire application is visible in the specified area without distortion while maintaining the original 
    // aspect ratio of the application. Borders can appear on two sides of the application.
    kResolutionShowAll,
    
    kResolutionUnKnown,
};

누군가는 반드시 생각할 것이다.그러면...그 판단 직사각형, 터치 같은 것들은 일치하지 않을까요?답은 할 줄 몰라요.모든 구성 요소를 포함하는 등비 축소...모두 안심하고 사용하세요..

좋은 웹페이지 즐겨찾기