Cocos2d-x v3.x tutorial を試す (2”) … iPad確認

iPad, iPad Retina で表示がおかしい…
どうしても気になって、テスト…

Cocoa部 – Cocos2d-x:絶対にわかるマルチ解像度(マルチディスプレイ)対応
http://cocoabu.com/multi-resolution

…まさか…
iPhone Retina はちゃんとできたけど… いや、まさか…
iPad(非Retina)で以下を試してみる事に…

director->setContentScaleFactor(2.0f);

なるほど、期待した感じに。 ^^;
ってことは iPad Retina は director->setContentScaleFactor(4.0) とすればイケルか ^^

ってことで、チュートリアルのコードはこんな感じに自己解釈しました。

    {
        auto fileUtils = FileUtils::getInstance();
        auto screenSize = glview->getFrameSize();
        std::vector<std::string> resDirOrders;

        if ((2048 == screenSize.width) ||
            (2048 == screenSize.height))
        {
            resDirOrders.push_back("ipadhd");

            //glview->setDesignResolutionSize(2048, 1536, ResolutionPolicy::NO_BORDER);
            //glview->setDesignResolutionSize(1024, 768, ResolutionPolicy::NO_BORDER);
            glview->setDesignResolutionSize(512, 384, ResolutionPolicy::NO_BORDER);

            director->setContentScaleFactor(4.0f);
        }
        else if ((1024 == screenSize.width) ||
                 (1024 == screenSize.height))
        {
            resDirOrders.push_back("ipad");

            //glview->setDesignResolutionSize(1024, 768, ResolutionPolicy::NO_BORDER);
            glview->setDesignResolutionSize(512, 384, ResolutionPolicy::NO_BORDER);

            director->setContentScaleFactor(2.0f);
        }
        else if ((1136 == screenSize.width) ||
                 (1136 == screenSize.height))
        {
            resDirOrders.push_back("iphonehd");

            //glview->setDesignResolutionSize(1156, 640, ResolutionPolicy::NO_BORDER);
            glview->setDesignResolutionSize(568, 320, ResolutionPolicy::NO_BORDER);
        }
        else if ((960 == screenSize.width) ||
                 (960 == screenSize.height))
        {
            resDirOrders.push_back("iphonehd");

            //glview->setDesignResolutionSize(960, 640, ResolutionPolicy::NO_BORDER);
            glview->setDesignResolutionSize(480, 320, ResolutionPolicy::NO_BORDER);
        }
        else
        {
            resDirOrders.push_back("iphone");

            glview->setDesignResolutionSize(480, 320, ResolutionPolicy::NO_BORDER);
        }

        fileUtils->setSearchPaths(resDirOrders);
    }

iPhone Retina が ベースなのかな…Android確認しないとまずいな…
ResolutionPolicy::SHOW_ALL かな。


Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です