coco 2 dx 2.0 android多解像度問題の解決

2726 ワード

cococos 2 dxプラットフォームにまたがるエンジンは本当に面白いです.私は最近ocが書いたゲームをcococos 2 dxに移すことにしました.
しかしandroidプラットフォーム上のマルチ解像度は大きな問題であり、iosのはどうでもいい.480*320 960*640*1024*768 2048*1536は画素点に基づいてよく解決できる.
まあ、cococos 2 dxではsetDesignResolutionSizeがマルチ解像度をサポートしていますが、使用後わかりますが、480*320スクリーン比でないと黒いエッジが出てきます
私のg 7は800*480なのでhellowordを実行すると両側に黒い辺が現れます
ソリューション:
Googleの資料と結びつけて:
原理:同様にsetDesignResolutionSize画素点の原則を採用してただ少しだけいくつかの地方を調整します
メールでアプリでは
 
 

view->setDesignResolutionSize(viewWidth, 320);

  :

        float scaleH = (float)h/320;

        int viewWidth = (int)(w/scaleH);

        view->setDesignResolutionSize(viewWidth, 320);

原理:高さ320画素点を原則widthは高さと同じ割合で対応する論理点に換算する
480/320=1.5つまり、1つの論理点が1.5ピクセル点に等しい
だから800を論理点に換算すると533です
そしてハローWorldScene.cppの背景はhellwordを修正します.pngは480*320
変更後:
 // add "HelloWorld" splash screen"

    CCSprite* pSprite = CCSprite::create("HelloWorld.png");



    // position the sprite on the center of the screen

    int bg_size_w = pSprite->getTexture()->getContentSize().width;

    int bg_size_h = pSprite->getTexture()->getContentSize().height;

    CCLog("bg_size_w %d",bg_size_w);

    float f_w = size.width/(float)bg_size_w;

    float f_h = size.height/(float)bg_size_h;

    pSprite->setScaleX(f_w);

    pSprite->setScaleY(f_h)

そしてCygwin biuldでbuild_native.sh  
eclipse生成apk実行yeah解像度の問題を解決