一、基础概念
五种适配模式:
EXACT_FIT:会靠拉伸来填满屏幕,背景图会变形来充满屏幕,因为1024:768=1.3, 480:320=1.5,宽高比不同,图片也就无法等比缩放来填满屏幕,只能变形了。
NO_BORDER:看不到黑边,实际就是宽高等比缩放,但缩放比例取宽比和高比中大的那一个
- SHOW_ALL:全部显示,可以理解为保证内容都显示在屏幕之内,实际也是宽高等比缩放,但缩放比例取宽比和高比之中小的那一个。
- FIXED_HEIGHT:保持传入的设计分辨率高度不变,根据屏幕分辨率修正设计分辨率的宽度。
- FIXED_WIDTH:保持传入的设计分辨率宽度不变,根据屏幕分辨率修正设计分辨率的高度。
两种分辨率:
- 窗口分辨率:在电脑上就是显示窗口的分辨率,在手机上就是手机的屏幕分辨率
- 设计分辨率:游戏在设计时候的分辨率,也就是可视区域的大小
适配原理:
就是根据不同的适配模式,设计分辨率,窗口分辨率生成最终可视区域大小的转换过程。
二、代码相关—CCGLView
在不同平台下,CCEGLView是不同的
(PS:cocos2d-x中有很多这样的用法,即同一个头文件,在不同平台上实现不同)
CCEGLView除了和屏幕适配有关外,还用来处理鼠标点击模拟器触摸,按键等事件的处理。
设置窗口大小:
void GLView::setFrameSize(float width, float height)
{
_designResolutionSize = _screenSize = Size(width, height);
}
设置设计分辨率大小和适配模式:
void GLView::setDesignResolutionSize(float width, f