【已解决】Cocos分辨率的问题?求官方查证哦

在UI编辑器里面设置分辨率是7681024,
然后程序中若是设置成其他分辨率就会导致缩放有问题,显示的位置整体会向右上便宜,并且各种容器之间的相对位置也会发生偏移,只能设置为在UI编辑器中设定的分辨率:768
1024才OK。不知道有没有其他人遇到这个问题。版本是8月29号新下载的最新版本,编辑器是3.3.0,框架是cocos2d-x_v2.1.5a。
如下图:

求点解~!

— Begin quote from ____

%url%denzhe22 发表于 2013-9-9 14:06
所有关于缩放的部分,包括字体的缩放,cocos2d都已经实现了,只需要设置好设计尺寸,在启动设置窗口大小 …

— End quote

那你现在用UI编辑器,怎么适配嘛??你导出来的是json文件,然后加载,并没有指定资源的位置,然后UI编辑器并没有提供像Android那样有基本的五种布局方式,如果用代码硬写UI,那cocos2d-x是可以适配的,但是用UI编辑器编出来的UI文件,不知道咋适配,现在官方的解答说是等后续版本

— Begin quote from ____

%url%denzhe22 发表于 2013-9-9 14:06
所有关于缩放的部分,包括字体的缩放,cocos2d都已经实现了,只需要设置好设计尺寸,在启动设置窗口大小 …

— End quote

确定??之前的版本是需要添加一部分代码的,在AppDelegate里面,先设置自己的设计分辨率以及适配方案,然后再判断资源尺寸和设计分辨率比较,设置缩放因子。。等这一段代码的。,。现在的新版本,新建的项目这一段代码都木有。我心里就好奇,是内部已经实现了,还是自己需要在手动在添加上,以前是自动生产的,我就纳闷,为啥又取消掉了,。我还是把那一段代码贴出来把

— Begin quote from ____

%url%樱木vs鸣人 发表于 2013-9-6 10:58
现在新建的版本,项目里面的Appdelegat里面都木有设计缩放适配方案这些,我是从HellowoRD把代码拷贝过去 …

— End quote

所有关于缩放的部分,包括字体的缩放,cocos2d都已经实现了,只需要设置好设计尺寸,在启动设置窗口大小的时候cocos会处理的

— Begin quote from ____

%url%denzhe22 发表于 2013-8-30 09:30
我昨天下班前试了下,传入了设计尺寸过后,完全不需要做其他缩放处理,新版本的貌似做了自动缩放了~反正 …

— End quote

哥们求解答,你的UI适配是咋弄的。我的问题就和你的问题一样,在自己设计的分别率下面是没有问题的,一旦换了其他分辨率位置完全不对。。需要咋搞啊??

现在的新版本cocos2d-x 新建项目的时候,Appdelegate里面都不会添加 缩放的设置那些也不会有寻找资源目录地址的那些函数。是不是意味着引擎内部自动实现了啊、????

谢谢楼主,楼主太好人了

— Begin quote from ____

%url%樱木vs鸣人 发表于 2013-9-5 17:03
哥们求解答,你的UI适配是咋弄的。我的问题就和你的问题一样,在自己设计的分别率下面是没有问题的,一旦 …

— End quote

CCEGLView::sharedOpenGLView()->setDesignResolutionSize(设计尺寸宽度, 设计尺寸高度, kResolutionNoBorder);
其他什么都别设置,以前版本的接口用法不一样了,缩放现在的新版本做了自动化处理的。祝你好运

— Begin quote from ____

%url%denzhe22 发表于 2013-9-6 09:14
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(设计尺寸宽度, 设计尺寸高度, kResolutionNoBo …

— End quote

现在新建的版本,项目里面的Appdelegat里面都木有设计缩放适配方案这些,我是从HellowoRD把代码拷贝过去的。。。难道这部分代码也不需要了?在 AppDelegate里面只需要 CCEGLView::sharedOpenGLView()->setDesignResolutionSize()这一句就可以了??

— Begin quote from ____

%url%小雨 发表于 2013-8-29 20:10
借地方插一句。

关于尺寸设置,我采用的方法是:

— End quote

我昨天下班前试了下,传入了设计尺寸过后,完全不需要做其他缩放处理,新版本的貌似做了自动缩放了~反正我是这么理解的,以前的版本需要自己设定,而且文本在以前版本也是需要自己修改,但是新版本的不需要,也做了缩放处理,指示缩放过后有锯齿的问题有点儿纠结,
:lol要是有一个设置粗体或者添加边框的功能就好了

借地方插一句。

关于尺寸设置,我采用的方法是:

Appdelegate里面用CCEGLView::sharedOpenGLView()->setDesignResolutionSize(width, height, kResolutionShowAll); 设置实际的尺寸,该是多少就是多少。

至于看到的尺寸,到相应的main.cpp里用eglView->setFrameSize(width, height);来设置。

从来没设过缩放,也没用过自适应=。=,总感觉很不对劲。这样搞会有什么后遗症啊?……求解惑。

函数别乱用 先明白函数是用来干嘛的

CCSize designSize = CCSizeMake(screenSize.width, screenSize.height); 这一句错了
这个是你设计的尺寸 也就是 768 * 1024

— Begin quote from ____

%url%dempsey 发表于 2013-8-29 16:36
CCSize designSize = CCSizeMake(screenSize.width, screenSize.height); 这一句错了
这个是你设计的尺寸 …

— End quote

哦, 改了下,之前的问题是解决了,但是下面这个scale设置出来就是1了哦~因为kResDesignHeight 就是设计尺寸了1024
// 计算资源整体缩放比率
SetContentScaleFactor( designSize.height/kResDesignHeight );
pDirector->setContentScaleFactor(kResDesignHeight/designSize.height);

然后我就设置为pDirector->setContentScaleFactor(kResDesignHeight/screenSize.height);反而会有问题,就觉得很奇怪~这个函数到底是设置了个什么?

— Begin quote from ____

%url%dempsey 发表于 2013-8-29 11:10
可以看看HelloCpp的缩放代码

— End quote

谢谢,不过对照了下,代码没啥问题,兄台能帮我看下否:显示形状缩放ok,但是xy坐标没有执行缩放
bool AppDelegate::applicationDidFinishLaunching()
{
// 初始化
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize();
CCSize designSize = CCSizeMake(screenSize.width, screenSize.height);

CCFileUtils* pFileUtils = CCFileUtils::sharedFileUtils();

// 计算资源整体缩放比率
SetContentScaleFactor( designSize.height/kResDesignHeight );
pDirector->setContentScaleFactor(kResDesignHeight/designSize.height);

CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);

// 开启 FPS 显示
pDirector->setDisplayStats(false);
// 设置 FPS 帧率
pDirector->setAnimationInterval(1.0 / 60);

// 进入启动状态
CCDirector::sharedDirector()->purgeCachedData();
CCScene* pScene = new StartScene();
// 运行
pDirector->runWithScene(pScene);
pScene->release();

// 添加全局消息对象节点
NotificationNode* pNotificationNode = new NotificationNode();
pDirector->setNotificationNode(pNotificationNode);
pNotificationNode->onEnter();
pNotificationNode->autorelease();

return true;

}

可以看看HelloCpp的缩放代码

也就是说缩放的时候就会出问题,会产生偏移

— Begin quote from ____

%url%denzhe22 发表于 2013-9-9 14:06
所有关于缩放的部分,包括字体的缩放,cocos2d都已经实现了,只需要设置好设计尺寸,在启动设置窗口大小 …

— End quote

那你现在用UI编辑器,怎么适配嘛??你导出来的是json文件,然后加载,并没有指定资源的位置,然后UI编辑器并没有提供像Android那样有基本的五种布局方式,如果用代码硬写UI,那cocos2d-x是可以适配的,但是用UI编辑器编出来的UI文件,不知道咋适配,现在官方的解答说是等后续版本

— Begin quote from ____

%url%denzhe22 发表于 2013-9-9 14:06
所有关于缩放的部分,包括字体的缩放,cocos2d都已经实现了,只需要设置好设计尺寸,在启动设置窗口大小 …

— End quote

确定??之前的版本是需要添加一部分代码的,在AppDelegate里面,先设置自己的设计分辨率以及适配方案,然后再判断资源尺寸和设计分辨率比较,设置缩放因子。。等这一段代码的。,。现在的新版本,新建的项目这一段代码都木有。我心里就好奇,是内部已经实现了,还是自己需要在手动在添加上,以前是自动生产的,我就纳闷,为啥又取消掉了,。我还是把那一段代码贴出来把

— Begin quote from ____

%url%denzhe22 发表于 2013-8-30 09:30
我昨天下班前试了下,传入了设计尺寸过后,完全不需要做其他缩放处理,新版本的貌似做了自动缩放了~反正 …

— End quote

哥们求解答,你的UI适配是咋弄的。我的问题就和你的问题一样,在自己设计的分别率下面是没有问题的,一旦换了其他分辨率位置完全不对。。需要咋搞啊??