Cocos2d-x开发之第二篇《设置模拟器大小及实际分辨率》
2014-11-03 15:03
489 查看
接上一篇《创建工程》
1、在D:\cocos2d-x-2.2.5\projects\MyGame\proj.win32中有main.cpp文件,内容如下:
其中的eglView->setFrameSize(480, 320)是设置模拟器大小的(相当于是手机的实际尺寸),大家可以根据实际情况进行设置。 2、在D:\cocos2d-x-2.2.5\projects\MyGame\Classes中的AppDelegate.cpp是整个游戏的代理文件。由于考虑到Android手机各种屏幕分辨率问题,所以需要在这里设置统一的分辨率。如下:
正是那句CCEGLView::sharedOpenGLView()->setDesignResolutionSize这个函数。第一个参数是: 分辨率宽;第二个参数是: 分辨率高;第三个参数是: 图片适应屏幕分辨率的属性,如:kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll等等,主要用的是这三个。 3、下面分别对kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll属性做图文讲解。假设我们有一张540X960的png图,然后把模拟器大小设置成480X320(对应实际手机屏幕尺寸),而分辨率设置成520X800(对应实际手机屏幕分辨率)通过如下函数设置:CCEGLView::sharedOpenGLView()->setDesignResolutionSize(520, 800, 属性); 540X960的图如下:
当属性为kResolutionExactFit时,如下结果:
由上得到的结论是:背景图片为了填充整个屏幕而挤压变形了,还影响到了其它元素的显示效果,比如:文本元素Hello World,右下角的按钮,都变了形。 当属性为kResolutionNoBorder时,如下结果:
由上得到的结论是:背景图片为以原图片大小居中显示,只截取了中间的一部分,不会影响其它元素的显示效果(通常都用这个属性,反正我是用这个属性的),要注意的是这里和图片的setPosition有关系,这里是setPosition屏幕中间的。特别提醒:以kResolutionNoBorder属性时,场景中的精灵位置需要加上CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();的坐标,否则会出现位置偏移的情况。 当属性为kResolutionShowAll时,如下结果:
由上得到的结论是:背景图片等比例缩小,直到原始图片高度与屏幕分辨率高相等,会影响其它元素的显示,比如:文本元素和按钮,显示的位置会以大背景图的显示区域为基准。
1、在D:\cocos2d-x-2.2.5\projects\MyGame\proj.win32中有main.cpp文件,内容如下:
其中的eglView->setFrameSize(480, 320)是设置模拟器大小的(相当于是手机的实际尺寸),大家可以根据实际情况进行设置。 2、在D:\cocos2d-x-2.2.5\projects\MyGame\Classes中的AppDelegate.cpp是整个游戏的代理文件。由于考虑到Android手机各种屏幕分辨率问题,所以需要在这里设置统一的分辨率。如下:
正是那句CCEGLView::sharedOpenGLView()->setDesignResolutionSize这个函数。第一个参数是: 分辨率宽;第二个参数是: 分辨率高;第三个参数是: 图片适应屏幕分辨率的属性,如:kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll等等,主要用的是这三个。 3、下面分别对kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll属性做图文讲解。假设我们有一张540X960的png图,然后把模拟器大小设置成480X320(对应实际手机屏幕尺寸),而分辨率设置成520X800(对应实际手机屏幕分辨率)通过如下函数设置:CCEGLView::sharedOpenGLView()->setDesignResolutionSize(520, 800, 属性); 540X960的图如下:
当属性为kResolutionExactFit时,如下结果:
由上得到的结论是:背景图片为了填充整个屏幕而挤压变形了,还影响到了其它元素的显示效果,比如:文本元素Hello World,右下角的按钮,都变了形。 当属性为kResolutionNoBorder时,如下结果:
由上得到的结论是:背景图片为以原图片大小居中显示,只截取了中间的一部分,不会影响其它元素的显示效果(通常都用这个属性,反正我是用这个属性的),要注意的是这里和图片的setPosition有关系,这里是setPosition屏幕中间的。特别提醒:以kResolutionNoBorder属性时,场景中的精灵位置需要加上CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();的坐标,否则会出现位置偏移的情况。 当属性为kResolutionShowAll时,如下结果:
由上得到的结论是:背景图片等比例缩小,直到原始图片高度与屏幕分辨率高相等,会影响其它元素的显示,比如:文本元素和按钮,显示的位置会以大背景图的显示区域为基准。
相关文章推荐
- 设置cocos2d-lua模拟器窗口大小
- android 横竖屏切换 分辨率大小设置的模拟器
- cocos2d-x 获取屏幕大小 实际设计大小 分辨率适配问题
- cocos2d-x3.0rc 版 设置模拟器窗口大小
- cocos2d-x3.0rc 版 设置模拟器窗体大小
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- android开发学习笔记(7)设置android模拟器为中文环境
- 【Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧以及动画创建!【二】 推荐
- 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧以及动画创建!【一】
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .
- 创建android的模拟器时屏幕的大小设置
- 【Cocos2d游戏开发之七】在cocos2d中添加系统组件,并解决View设置透明会影响View中的其他组件的问题!
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现动画进行时慢动作\设置游戏加减速进行
- android模拟器分辨率设置以及获得模拟器分辨率代码片段
- 【iOS-Cocos2d开发之三】CCScene切换的所有特效,以及设置屏幕横竖屏!
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【Cocos2d游戏开发之三】CCScene切换的所有特效(27种)以及设置屏幕横竖屏!
- GDI+ 设置不同的分辨率来显示不同大小的图片