【问题标题】:What is the use of setDesignResolutionSize in cocos studio?cocos studio中setDesignResolutionSize有什么用?
【发布时间】:2016-07-14 12:20:47
【问题描述】:

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

在使用 cocos studio 时

auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLViewImpl::createWithRect("HelloCpp", Rect(0, 0, 960, 640));
        director->setOpenGLView(glview);
    }
    director->getOpenGLView()->setDesignResolutionSize(960, 640, ResolutionPolicy::SHOW_ALL);

和普通的 cocos2dx 项目一样

没有 cocos 工作室

appDelegate 类中的代码是这样的。

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

我的疑问是,setDesignResolutionSize 是否必须设置,并且每个设备尺寸是否都应该相同???

【问题讨论】:

  • No 不是必需的,但我认为使用它很好,如果您设置表面的尺寸,如果您检查第一个代码 createWithRect 它将创建 960*640 的分辨率。我认为这样做的目标是因为手机中有许多不同的尺寸,所以如果您的设备没有该宽高比会发生什么?简单地说,在这种情况下,它会显示所有内容,但图像会被拉伸,ResolutionPolicy::NO_BORDER 它会裁剪一些表面。但这只是支持“多分辨率设备”的一种方式

标签: c++ cocos2d-x cocostudio


【解决方案1】:

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

NO_BORDER 策略会裁剪一些表面,但根据设备屏幕尺寸,您会失去世界的某些部分。如果您打算这样做,那么您必须确保重要部分位于安全区域内,以免您的游戏受到影响。如果您使用 NO_BORDER 策略,则必须注意一件事。设计分辨率将与可见区域不同。如果这是您决定选择策略的原因,那么您需要 visibleSize() 和 visibleOrigin() 函数来帮助您确定精灵和游戏对象的位置。

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

正如您可能已经猜到的那样,FIXED_WIDTH 策略的工作方式类似,但针对的是宽度而不是高度。

FIXED_WIDTH 和 FIXED_HEIGHT 都会根据您的选择修改设计分辨率的宽度或高度。这样做的好处是生成的设计分辨率将与可见区域相同。这使您可以更轻松地在游戏中定位和定位您的精灵。

可以在以下链接中找到有关这些主题的更多信息。有很清楚的解释。虽然它们有点老了,但它们让您了解这一切是如何运作的。 http://www.cocos2d-x.org/wiki/Multi_resolution_support

http://cocos2d-x.org/wiki/Detailed_explanation_of_Cocos2d-x_Multi-resolution_adaptation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多