官术网_书友最值得收藏!

Time for action – adding retina support

This time we'll work with the class AppDelegate.cpp:

  1. Go to AppDelegate.cpp (you'll find it in the Classes folder). Inside the applicationDidFinishLaunching method, and below the director->setAnimationInterval(1.0 / 60) line, add the following lines:
    auto screenSize = glview->getFrameSize();
    auto designSize = Size(768, 1024);
    glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::EXACT_FIT);
    
    std::vector<std::string> searchPaths;
    if (screenSize.width > 768) {
        searchPaths.push_back("hd");
        director->setContentScaleFactor(2);
    } else  {
        searchPaths.push_back("sd");
        director->setContentScaleFactor(1);
    }
    auto fileUtils = FileUtils::getInstance();
    fileUtils->setSearchPaths(searchPaths);
  2. Save the file.

What just happened?

An entire book could be written about this topic, although in this first example, we have a very simple implementation on how to support multiple screen sizes since we are only targeting iPads. Here we are saying: "Hey AppDelegate, I designed this game for a 768 x 1024 screen."

All the values for positioning and font size were chosen for that screen size. If the screen is larger, make sure you grab the files from the hd folder and change the scale by which you will multiply all my positioning and font sizes. If the screen has the same size I designed the game for, use the files in the sd folder and set the scale to 1. (Android adds even more complexity to this, but we'll tackle that in later in the book.)

FileUtils will look for every file you load for your game first inside Resources | sd (or hd). If it doesn't find them there, it will try to find them in Resources. This is a good thing because files shared by both versions may be added only once to the project, inside Resources. That is what we'll do now with the sound files.

主站蜘蛛池模板: 唐山市| 葵青区| 无锡市| 松江区| 普洱| 刚察县| 台江县| 赫章县| 青冈县| 城固县| 岳阳县| 万宁市| 九江县| 大埔区| 岳阳市| 达拉特旗| 铜梁县| 沁源县| 铁力市| 仪陇县| 海淀区| 南安市| 舒兰市| 盐亭县| 乐昌市| 太和县| 连云港市| 扎兰屯市| 铁岭市| 化隆| 佛冈县| 南溪县| 元朗区| 赣州市| 库尔勒市| 连平县| 太湖县| 阳春市| 兰坪| 苏尼特左旗| 同心县|