如何为 cocos2d js android 应用程序设置分辨率

How to set Resolution for cocos2d js android application

我希望我的 cocos2d js android 应用程序能够完全适应所有设备的整个屏幕...

这是main.js

cc.game.onStart = function(){
cc.view.adjustViewPort(true);
cc.view.setDesignResolutionSize(800, 850, cc.ResolutionPolicy.SHOW_ALL);
cc.view.resizeWithBrowserSize(true);
//load resources
cc.LoaderScene.preload(g_resources, function () {
    cc.director.runScene(new StartScene());
}, this);
};
cc.game.run();

所以不用指定 800,850,有没有办法将其设置为特定的设备分辨率?

谢谢。

根据文档,cc.view.setDesignResolutionSize 需要宽度后跟高度。因此,在这种情况下,可以使用以下内容:

var width = cc.winSize.width;
var height = cc.winSize.height;
cc.view.setDesignResolutionSize(width, height, cc.ResolutionPolicy.SHOW_ALL);
希望这有帮助。

在尝试让我的游戏背景适合所有 iOS 设备和所有 android 设备时,我在设计分辨率概念上遇到了一些困难。这是我想出的:

//check if running on mobile device with native code or web browser 
if (cc.sys.isNative)
{
    //get the current search paths
    var searchPaths = jsb.fileUtils.getSearchPaths();
    //get the window size of the device
    var winSize = cc.director.getWinSize();
    //if the width matches the iPad retina
    if(winSize.width == 2048){
        //set the designResolutionSize to the dimmensions of the iPad Retina
        cc.view.setDesignResolutionSize(2048, 1536, cc.ResolutionPolicy.EXACT_FIT);
        //look in the extraLarge folder for assets
        searchPaths.push("res/extraLarge/");
        searchPaths.push("src");
        isIpad = true;
        isRetna = true;
    }
    //if the width matches the iPad
    else if(winSize.width == 1024){
        cc.view.setDesignResolutionSize(1024, 768, cc.ResolutionPolicy.EXACT_FIT);
        searchPaths.push("res/large/");
        searchPaths.push("src");
        isIpad = true;
    }
    //if the width matches the iPhone 5 and higher
    else if(winSize.width == 1136){
        cc.view.setDesignResolutionSize(800, 450, cc.ResolutionPolicy.EXACT_FIT);
        searchPaths.push("res/medium/");
        searchPaths.push("src");
    }
    //if the width matches the iPhone 4
    else if(winSize.width == 960){
        cc.view.setDesignResolutionSize(960, 640, cc.ResolutionPolicy.EXACT_FIT);
        searchPaths.push("res/small/");
        searchPaths.push("src");
    }
    //anything else
    else{
        cc.view.setDesignResolutionSize(800, 450, cc.ResolutionPolicy.EXACT_FIT);
        searchPaths.push("res/medium/");
        searchPaths.push("src");
    }
    jsb.fileUtils.setSearchPaths(searchPaths);
}
//if not native code
else
{

    cc.view.setDesignResolutionSize(800, 450, cc.ResolutionPolicy.SHOW_ALL);
    cc.view.resizeWithBrowserSize(true);
}

代码已注释,但总结一下:检查您 iOS 设备 运行 并相应地设置 designResolutionSize 和搜索路径。对于所有其他设备,请使用 800 x 450 和中等搜索路径。对于每个搜索路径,我都有一个与 designResolutionSize 具有相同尺寸的背景资源,并且我的其他资产也相应地缩放。

我选择检查 iOS 台设备,因为要检查的设备数量很少,而不是几个不同的 android 设备。可能有更好的方法来执行此操作,但这是我的游戏在 iOS 和我和我的朋友测试过的 android 设备上有效的方法。