这个问题搞了好几天才解决,在此总结一下:
首先约定只使用一套图片资源同时应用于iphon4和iphon5(测试过在ipad下也能显示正常), 这里我们将需要全屏显示的背景制作为iphon5的尺寸即:1136 * 640
一、cocosbuilder
1. 新建一个场景文件,选择iphone5 Landspcape 调整高宽为1136*640,如图片:
只有一套图片,只需要这个尺寸就行了
2.在场景编辑中所有的节点设置为百分比座标:
二、coco2d-x
我们制作的场景以1136*960为设计尺寸, 按实际屏幕尺寸与设计尺寸与的高度比做为缩放因子。代码如下:
CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize();
CCSize designSize = CCSizeMake(1136, 640);
CCFileUtils* pFileUtils = CCFileUtils::sharedFileUtils();
std::vector<std::string> searchPaths;
pFileUtils->setSearchPaths(searchPaths);
pDirector->setContentScaleFactor(screenSize.height/screenSize.height);
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);
使用以上方法在iphon Retina(3.5-inch)、 iphone Retina(4-inch)、ipad、ipad Retina 四个模拟器中都能正常显示,位置也正确。
只是在ipad Retina 图片被放大会有失真。