背景,最近接手一个项目,类捕鱼游戏,需求是子弹发射后可以在四周墙体内反弹,关于反弹可以参考我另一篇文章。由于不同机型屏幕高宽比不同,所以要适配墙体之间的距离。众所周知,U3d的Camera相机在视口发生改变时,上下边缘是不变,只有左右边缘会互相靠近或远离。手机屏幕同理,宽屏手机下左右边缘相继较远,平板手机则是左右边缘相继较近。因此知道手机屏幕分辨率后,接下来只要改变黄色箭头的墙体就行了
-- 墙体自适应不同屏幕,备注:GreatWallMgr.LeftWall与GreatWallMgr.RightWall为左右墙体
function GreatWallMgr.InitAdaptionWall()
-- 基准比例1136:640 == 71:40,我的项目以1136:640为标准来适配不同的分辨率
log("Height: " .. tostring(curCamera.pixelHeight))
log("Width: " .. tostring(curCamera.pixelWidth))
local curHeight = curCamera.pixelHeight
local curWidth = curCamera.pixelWidth
local Dwidth = 71*curHeight/40 -- 差值
local Pwidth = (curWidth - Dwidth)/Dwidth -- 实际宽度与基准宽度的百分比,