现代社会的快速发展,市场上的手机是各种各样,屏幕的分辨率也有大有小,在做一款游戏的时候我们资源有限,各种分辨率下肯定会出现问题,不可能每种类型的手机都做一套界面,那不可能,也不现实。
市场上手机的分辨率各种各样,不可能做到百分百完全适配,只是适配后没有明显的问题罢了,比如:
1、图片不能变形
2、屏幕不能出现黑边
3、游戏的功能模块不能相互遮挡
所以在有限的资源内,该如何使用一套游戏界面适配市场上各种不同类型的手机屏幕呢?
比如我们有一套960*640的游戏界面,我们需要放到800*600、1920*1080的屏幕上?
适配方法:
这里我们的游戏分辨率和想要的分辨率的宽度和高度都不一样,这里可以利用解二元一次方程的消元思想,放到程序里就是我们适配宽度还是适配高度。
适配宽度就是保持宽度完全显示到屏幕,适配高度就是保持高度完全显示到屏幕。如下图所示:
适配过程:使用游戏资源的分辨率求出逻辑分辨率,然后乘上缩放比例就得到了想要的分辨率,是不是很简单。
资源分辨率-->逻辑分辨率*缩放比例-->想要的分辨率
逻辑分辨率要求高度和宽度的比例必须和想要屏幕分辨率比例一致。
这么简单该如何计算逻辑分辨率呢?
以保持宽度为例:使用游戏资源分辨率的宽度,求出逻辑分辨率的高度
列出方程:960/?=1920/1080
解方程得出: ?=540
所以逻辑分辨率为:960*540
求出了逻辑分辨率,还需要再求出缩放比例就可以了,
缩放比例就是使用想要的分辨率宽度或高度除以逻辑分辨率宽度或高度就得到缩放比例,
还是以宽度为例:1920/960=2
所以缩放比例为2。
适配背景图:
1、做足够大的背景图,这个图能够覆盖所有主流的手机分辨率
2、做无限滚动的背景图,几张图片拼接而成
3、背景图固定,无法适配屏幕,根据屏幕的逻辑大小,缩放背景图,需要代码控制。
适配内容:
为了适配各种屏幕,屏幕空间是固定的,所以就会牺牲一些内容的空间,导致内容重叠的情况出现,所以为了避免这种因为缩放出现而出现的界面重叠影响玩家体验,这个时候就需要我们编写代码找出不适配的内容,然后单独缩放。