刚开始学习2dx(使用版本2.1.4),尝试跑2dx自带的例子TestCpp,这个例子中使用了屏幕适配解决方案
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);
和我网上看到的屏幕适配方案类似,但是在我的手机上跑这个例子,发现图片被拉伸了,但是如果做一步scene切换(CCTransitionProgressRadialCCW::create(t, s)),图片正常了,界面效果也正常,然后我按home键退出程序,再把程序打开,有恢复到原来图片被拉伸的状态
这个问题非常的奇怪,难道和我手机有关,求大师解答?
我的手机是华为U9508 分辨率1280X720,android4.1系统
我也出现这个情况 2.2.1的 调试模式下一会正常一会儿被拉伸 全速运行模式正常 
切回来的时候都重新设置下缩放
我是COMMAND+R运行起来 一次正常 停掉后第二次COMMAND+R运行起来 屏幕拉伸 停掉后再一次COMMAND+R运行又正常 模拟器跟真机现象一样 SDK版本 2.2.1 调试模式下SDK输出以下信息:
cocos2d.x.version: 2.2.1 cocos2d.x.compiled_with_profiler: false cocos2d.x.compiled_with_gl_state_cache: true gl.vendor: Apple Computer, Inc. gl.renderer: Apple Software Renderer gl.version: OpenGL ES 2.0 APPLE-9.2.1 gl.max_texture_size: 4096 gl.max_texture_units: 8 gl.max_samples_allowed: 4 gl.supports_PVRTC: true gl.supports_NPOT: true gl.supports_BGRA8888: false gl.supports_discard_framebuffer: true gl.supports_vertex_array_object: true我的适配代码:
typedef struct tagResource
{
CCSize size;
char directory;
}Resource;
void AppDelegate::SetResourceDictory(CCDirector* pDirector,CCEGLView* pEGLView)
{
Resource smallResource = { cocos2d::CCSizeMake(480, 320), “image/iphone” };
Resource mediumResource = { cocos2d::CCSizeMake(1136, 640), “image/iphone5” };
Resource largeResource = { cocos2d::CCSizeMake(2048,1536), “image/ipad-hd” };
CCSize designResolutionSize = cocos2d::CCSizeMake(480, 320);
CCFileUtils* pFileUtils = CCFileUtils::sharedFileUtils();
std::vector<std::string> searchPaths;
CCSize frameSize = pEGLView->getFrameSize();
pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionNoBorder);
if (frameSize.height > mediumResource.size.height)
{
searchPaths.push_back(largeResource.directory);
pDirector->setContentScaleFactor(largeResource.size.height/designResolutionSize.height);
}
else if (frameSize.height > smallResource.size.height)
{
searchPaths.push_back(mediumResource.directory);
pDirector->setContentScaleFactor(mediumResource.size.height/designResolutionSize.height);
}
else
{
searchPaths.push_back(smallResource.directory);
pDirector->setContentScaleFactor(smallResource.size.height/designResolutionSize.height);
}
CCLOG("width:%f heigh:%f factor:%f path:%s",frameSize.width,frameSize.height,pDirector->getContentScaleFactor(),searchPaths.c_str());
pFileUtils->setSearchPaths(searchPaths);
}
在applicationDidFinishLaunching函数里面调用 this->SetResourceDictory(pDirector,pEGLView);