游戏适配

 我来答
温屿17
2022-07-29 · TA获得超过1.2万个赞
知道小有建树答主
回答量:827
采纳率:0%
帮助的人:96万
展开全部

手机屏幕宽高比千差万别,如果不做好适配,就会在屏幕上留有黑边,或者有些内容超出去了,体验不会很好,因此我们需要做好适配,完善好一个游戏

最开始html采用的是像素来进行适配,因为屏幕的度量不是米,厘米,而是一个个像素,多少个像素就显示多少个“格子”

随着设备的发展,像素的“格子”越来越小,有时候完全一样大小的手机,新的手机的格子尺寸是原本格子的一半,这样用像素来描述已经不精确了,因此引进了这一个概念

如375*667的iphone6,实际像素为750*1334,我们给的图需要真实的像素,才能展现得更精细,因此就衍生两个概念, 屏幕宽高 游戏宽高 ,屏幕宽高*pixelratio=游戏宽高

很多游戏开发都用750*1334这个比例作为参考,宽高比(aspect ratio)为0.56,(我偷偷定义为0.56屏)

在dom的canvas API上,canvas.width/canvas.height是上下文宽高,即游戏宽高,而style.width或者通过transform来描述的,是css的宽高,即屏幕宽高

如果比例一致,如游戏是640*1334(即0.56屏),我们可以简单等比缩放即可

如果比例不一致,有两种做法

如果是调整游戏的尺寸,那么游戏内的UI也需要坐对应的调整,因为只是视口变大了,但是UI的定位还没有改变,仍需要进一步进行调整

通常来说我们会选择固定宽(fixedWidth),因为从iphone6过渡到iphoneX的第一感觉是高度变大了,而不是宽变窄了

适配需要考虑两个轴向,水平和垂直,由于采用了fixedWidth,我们不需要考虑水平了,仅仅考虑垂直轴即可

有时候我们通过适配改变了一个显示对象的缩放,位置,这时候使用动画的时候,可能初始值已经不正确了,或者终点值

这个时候我们可以使用双层容器,外层容器是适配,内层是动画用,如外层适配导致了缩放为0.8,但是内层依然是1到1.2的放大,两者最终会被叠加

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式