Cocos2d x 在使用kResolutionShowAll的cocos2dx中,如何使用空边框?
我打算用cocos2d-x为android开发一款游戏,但我在分辨率方面遇到了一些问题。 我正在使用kResolutionShowAll分辨率策略来确保我的所有图像都显示在设备中。 但我在一些设备上有一个很大的边框,我想找到一种方法,用图像、广告或其他东西来填充这些边框 我发现了这个:但它实际上不起作用Cocos2d x 在使用kResolutionShowAll的cocos2dx中,如何使用空边框?,cocos2d-x,screen-resolution,Cocos2d X,Screen Resolution,我打算用cocos2d-x为android开发一款游戏,但我在分辨率方面遇到了一些问题。 我正在使用kResolutionShowAll分辨率策略来确保我的所有图像都显示在设备中。 但我在一些设备上有一个很大的边框,我想找到一种方法,用图像、广告或其他东西来填充这些边框 我发现了这个:但它实际上不起作用 我不知道我是否选择了一个错误的政策,也许我应该选择kResolutionNoBorder。或者我误解了一些关于决心的事情,我的方式不正确 KResolutionExactFit将独立缩放宽度和高
我不知道我是否选择了一个错误的政策,也许我应该选择kResolutionNoBorder。或者我误解了一些关于决心的事情,我的方式不正确 KResolutionExactFit将独立缩放宽度和高度以适应屏幕,并且会扭曲所有使用的图像。图像质量不会改变您所谈论的太多
In the AppDelegate.cpp you can try this.
// initialize director
CCDirector* director = CCDirector::sharedDirector();
CCEGLView* EGLView = CCEGLView::sharedOpenGLView();
director->setOpenGLView(EGLView);
CCSize screenSize = EGLView->getFrameSize();
CCSize designSize = CCSizeMake(800, 480);
EGLView->setDesignResolutionSize(designSize.width,designSize.height, kResolutionExactFit);
For the support for all devices you can use following code:
**Landscape Mode**
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
director = CCDirector::sharedDirector();
EGLView = CCEGLView::sharedOpenGLView();
director->setOpenGLView(EGLView);
CCSize screenSize = EGLView->getFrameSize();
CCSize designSize = CCSizeMake(800, 480);
EGLView->setDesignResolutionSize(designSize.width,designSize.height, kResolutionExactFit);
if(screenSize.height > 480 && screenSize.height < 720 )
{
CCSize resourceSize = CCSizeMake(960, 540);
director->setContentScaleFactor(resourceSize.height/screenSize.height);
CCLog("Resolution Scale OF Karboon=%f",resourceSize.width/screenSize.width);
}
else if (screenSize.height >= 720 && screenSize.height < 800)
{
CCSize resourceSize = CCSizeMake(1280, 720);
director->setContentScaleFactor(resourceSize.height/screenSize.height);
CCLog("Resolution Scale OF NOTE=%f",resourceSize.width/screenSize.width);
}
else if(screenSize.height > 800)
{
CCSize resourceSize = CCSizeMake(1920, 1080);
director->setContentScaleFactor(resourceSize.height/screenSize.height);
CCLog("Resolution Scale OF Nexus=%f",resourceSize.width/screenSize.width);
}
else
{
director->setContentScaleFactor(1);
CCLog("Resolution Scale OF S Advance=%f");
}