如何为 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 设备上有效的方法。
我希望我的 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 设备上有效的方法。