适用于 ios 和 android 的 Cocos2d-x 和 CocosBuilder 多分辨率

问题描述 投票:0回答:4

我按照下面链接中的说明进行操作,无需 cocosBuilder 即可在 ios 平台上获得多分辨率工作。 http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Multi_resolution_support

当我使用cocosbuilder ccbi文件时,ipad屏幕上显示的图像仍然是iphone图像。

cocosbuilder 发布资源目录是这样的 cocosbuilder published directory

但似乎 cocos2d-x 没有从正确的目录中选择正确分辨率的正确图像。

这是我在代码中的资源设置。我正在 HD 的 ipad 3 上测试它。

#define DESIGN_RESOLUTION_480X320 0
#define DESIGN_RESOLUTION_1024X768 1
#define DESIGN_RESOLUTION_2048X1536 2

/* If you want to switch design resolution, change next line */
#define TARGET_DESIGN_RESOLUTION_SIZE DESIGN_RESOLUTION_2048X1536

typedef struct tagResource {
cocos2d::CCSize size;
char directory100;
}Resource;

static Resource smallResource = { cocos2d::CCSizeMake(480, 320), "ccb/resources-iphone" };
static Resource mediumResource = { cocos2d::CCSizeMake(1024, 768), "ccb/resources-ipad" };
static Resource largeResource = { cocos2d::CCSizeMake(2048, 1536), "ccb/resources-ipadhd" };

#if (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_480X320)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(480, 320);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_1024X768)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(1024, 768);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_2048X1536)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(2048, 1536);
#else
#error unknown target design resolution!
#endif

// The font size 24 is designed for small resolution, so we should change it to fit for current design resolution
#define TITLE_FONT_SIZE (cocos2d::CCEGLView::sharedOpenGLView()->getDesignResolutionSize().width / smallResource.size.width * 24)

#endif /* APPMACROS_H */ 
android ipad retina-display cocos2d-x cocosbuilder
4个回答
3
投票

我使用的是最新版本的cocos2d-x 2.1.2和cocosbuilder 3.0。 经过半天的努力,我找到了解决方案。

原因是cocosbuilder在发布资源时,创建了一个非常漂亮的目录结构,将不同分辨率的图片放到不同的文件夹中。我假设 cocos2d-x 会选择与 cocosbuilder 发布的文件结构配合使用的正确目录。我错了。我必须手动设置cocos2d-x中的资源目录以匹配cocosbuilder发布的目录。这样做之后,一切正常。


3
投票

以下教程介绍如何将CocosBuilder 3.0多分辨率资源集成到cocos2d-x项目中:http://2sa-studio.blogspot.com/2013/04/setup-cross-platform-project-with.html 。这可能对你有帮助。


0
投票

我认为无论你将图像存储在哪个“文件夹”中,它们都必须按照通常的模式命名,以符合cocos2d约定。

fish.png
fish-hd.png

也许您的文件夹结构来自 Android 项目?


0
投票

错误,cocosbuilder 3.0 alpha 不再支持为fish.png 附加-hd。相反,您必须使用 ipadhd 分辨率将资源放置在“resources-auto”文件夹中。 cocosbuilder 将为每个屏幕分辨率创建一个目录,其中您的资源文件具有适当的分辨率但具有相同的文件名。

我遇到的问题是,如果我将 ipad、iPhone-hd、iPhone-hd 的这些目录作为目标添加到我的 iOS 项目中,我会收到 COPYPNG 错误,因为我必须复制多个具有相同名称的文件。

© www.soinside.com 2019 - 2024. All rights reserved.