C++ cocos studio中setDesignResolutionSize的用途是什么?

C++ cocos studio中setDesignResolutionSize的用途是什么?,c++,cocos2d-x,cocostudio,C++,Cocos2d X,Cocostudio,在我的appDelegate类中,我有这样的代码 在使用cocos studio时 在正常的cocos2dx项目中 没有cocos工作室 appDelegate类中的代码如下所示 auto glview = director->getOpenGLView(); if(!glview) { glview = GLViewImpl::create("My Game"); director->setOpenGLView(glview); }

在我的appDelegate类中,我有这样的代码

在使用cocos studio时

在正常的cocos2dx项目中

没有cocos工作室

appDelegate类中的代码如下所示

auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLViewImpl::create("My Game");
        director->setOpenGLView(glview);
    }

我的疑问是,是否必须设置DesignResolutionSize,并且每个设备大小都应该相同???

在cocos2dx中,所有坐标都基于设计分辨率大小。通过这样做,您可以在所有屏幕尺寸上使用相同的坐标系。分辨率策略SHOWALL显示整个区域,没有任何更改。但是,由于并非所有设备的大小都相同,因此根据屏幕大小,您将有黑色边框

无边界策略将裁剪部分曲面,但根据设备屏幕大小,您将失去部分曲面。如果你打算这样做,那么你必须确保重要的部分在安全区域,这样你的游戏就不会受到影响。如果你使用无边界政策,有一件事你必须注意。设计分辨率将与可见区域不同。如果这是您决定选择的策略,那么您需要visibleSize()和visibleOrigin()函数来帮助您确定精灵和游戏对象的位置

也许最好的方法是使用固定高度或固定宽度策略。如果您选择固定高度策略,那么您只需告诉cocos2dx您希望在任何设备的可见区域显示整个高度。根据设备的不同,可以切断宽度。将重新计算设计分辨率大小的宽度大小。如果你不在乎游戏的宽度,你可以采用这种方法。换句话说,如果您的游戏需要游戏区域的整个高度,则您的政策是固定高度

正如您可能已经猜到的,固定宽度策略的工作原理类似,但适用于宽度而不是高度

“固定宽度”和“固定高度”都会根据您的选择修改设计分辨率的宽度或高度。这样做的好处是,生成的设计分辨率将与可见区域相同。这使得你更容易在游戏中定位你的精灵

有关这些主题的更多信息,请访问以下链接。解释得很清楚。虽然它们有点老了,但它们能让你了解这一切是如何运作的。


不需要,但我认为最好使用它,如果您设置曲面的尺寸,如果您检查createWithRect的第一个代码,它将创建960*640的分辨率。我认为这样做的目的是因为手机有很多不同的尺寸,所以如果你的设备没有这样的高宽比会发生什么呢?简单地说,在这种情况下,它将显示除图像外的所有图像,ResolutionPolicy::NO_BORDER将裁剪部分曲面。但这只是支持“多分辨率设备”的一种方法
auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLViewImpl::create("My Game");
        director->setOpenGLView(glview);
    }