cocos2dx屏幕适配
为什么需要适配
因为设计分辨率和实际分辨率不一致。
适配策略
cocos2dx提供了下面5种适配策略
设计分辨率的宽高比 = 实际分辨率的宽高比
- 只需要放大或者缩小
设计分辨率的宽高比 ≠ 实际分辨率的宽高
- 变形缩放
- 拉伸变形,能保证宽和高都撑满,对应
EXACT_FIT
- 拉伸变形,能保证宽和高都撑满,对应
- 不变形缩放
- 一直缩放,直到宽和高都撑满,不留黑边,对应
NO_BORDER
- 宽或高刚撑满就不缩放了,另一个方向就会留黑边,对应
SHOW_ALL
- 宽缩放到撑满就停,不管高撑满没有,对应
FIXED_WIDTH
- 高缩放到撑满就停,不管宽撑满没有,对应
FIXED_HEIGHT
- 一直缩放,直到宽和高都撑满,不留黑边,对应
- 变形缩放
推荐做法
如果是竖屏游戏,可以用定宽策略,只需要把素材做的高一点。
如果是横屏游戏,可以用定高策略,只需要把素材做的宽一点。
给美术出图的建议
目前我遇到的设备最大的长宽比是2.3。如果一个竖屏游戏的设计分辨率是 480*800
,那么背景图的高应该是 480*2.3=1104
。
程序如何在代码中动态调整UI元素的位置
我推荐的做法是中心点对齐。然后四个边的某些UI元素需要动态设置位置。
如果是竖屏定宽模式,那么顶部和底部的元素需要调整位置,利用可视区域原点
和可视区域尺寸
来做修改。
关于刘海屏
现在安卓和苹果都有刘海屏,刘海屏需要在代码中获取刘海高度来做动态调整。