Search code examples
cocos2d-x

Choose the design resolution size for Android devices in Cocos2dx


I'm having trouble when trying to choose design resolution sizes for Android devices.

I just want to have around 4-5 resources (images, background, sprites, etc) but can run in any Android devices. What the suitable design resolution I can do? For example, 320x480, 720x1280, what else?

Can you give me some advice to choose?

Thanks


Solution

  • In your AppDelegate class:
    

    this resolution is for Landscape Mode

    bool AppDelegate::applicationDidFinishLaunching()
    {
    
        /**********************  CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //set design resolution size and mode
         *********************  CCEGLView::sharedOpenGLView()->getFrameSize() //get screen resolution
         *********************CCDirector::sharedDirector()->getWinSize() //get design resolution
         *********************  CCDirector::sharedDirector()->getVisibleSize() //get design resolution’s visable area size
         *********************  CCDirector::sharedDirector()->getVisibleOrigin() //get origin of the visable area of design resolution*/
    
    
        // initialize director
        CCDirector* director = CCDirector::sharedDirector();
        CCEGLView* EGLView = CCEGLView::sharedOpenGLView();
    
        director->setOpenGLView(EGLView);
    
    
        CCSize screenSize = EGLView->getFrameSize();
        CCSize designSize = CCSizeMake(1024,614);
        EGLView->setDesignResolutionSize(designSize.width,designSize.height, kResolutionExactFit);
    
    
        CCLog("Screen Size:%f %f",screenSize.width,screenSize.height);
    
    
        if(screenSize.height >= 320 && screenSize.height <= 480)
        {
            CCSize resourceSize = CCSizeMake(800, 480);
            director->setContentScaleFactor(resourceSize.height/screenSize.height);
            CCLog("Resolution Scale OF Default =%f",resourceSize.height/screenSize.height);
    
        }
    
    
        else if(screenSize.height >= 540 && screenSize.height < 720 )
        {
    
            CCSize resourceSize = CCSizeMake(960, 540);
            director->setContentScaleFactor(resourceSize.height/screenSize.height);
            CCLog("Resolution Scale OF Karboon=%f",resourceSize.height/screenSize.height);
        }
    
    
        else if (screenSize.height >= 720 && screenSize.height < 800)
        {
    
            CCSize resourceSize = CCSizeMake(1280, 720);
            director->setContentScaleFactor(resourceSize.height/screenSize.height);
            CCLog("Resolution Scale OF NOTE=%f",resourceSize.height/screenSize.height);
    
        }
    
        else if(screenSize.height > 800)
        {
            CCSize resourceSize = CCSizeMake(1920, 1080);
            director->setContentScaleFactor(resourceSize.height/screenSize.height);
            CCLog("Resolution Scale OF Nexus=%f",resourceSize.height/screenSize.height);
    
        }
    
        else
        {
    
    
            director->setContentScaleFactor(1);
            CCLog("Resolution Scale OF S Advance=%f");
    
        }