CocosCreator适配笔记

bg图要保证填充满整个屏幕,bg挂在Canvas下面, 然而bg下面最好不要放东西,HUD界面需要另外做一些停靠点用来适配.

HUD界面一般可以将屏幕3分(顶部,中部,底部,当然也可以更多比如左上角,右上角,左下角,右下角,水平左,水平右,看情况而定).

设计分辨率我一般使用750*1334,适配策略使用fix_width自动适配宽度,这样bg的高度我们最好设置为原高度的1.25倍左右因为如果我们按照宽度去适配那么不理想的情况下顶部肯定会留有黑边(IphoneX之流),如若我们将bg的高度预留一点缓冲在fix_width策略下宽度适配完美预留的高度也会填充满多余的黑边,这样我们的bg就可以适应绝大部分主流机型为什么BG下面不要挂东西?如果你在bg节点下面挂的子节点去做一些逻辑坐标运算比如你用到了node.y = node.parent.height, *0.5,这种情况那就不好了,因为你的height是拉伸过的.

下面说HUD界面的适配.按照上面说的我们将屏幕停靠点选3个,上中下,创建top,center,bottom3个空节点,随便设置个宽高,使用widget组件将宽度拉伸满整个屏幕,top点的对齐顶部,center是居中0,0点,bottom是底部对齐都是0px,这样在任何的分辨率之下我们的3个HUD停靠点都可以完美的显示在屏幕内部,然后我把需要的ui控件分别根据美术的布局示意图放入top center bottom3个节点里面,放在对齐过的节点下这些子节点就不必要去挂widget组件了,这样可以解决绝大部分的机型适配,一般来说普通的游戏我们将bg完全填充屏幕ui控件完美显示就已经可以了,至于其他类型的游戏大地图那些也是一样的搞法,转场景之后除了hud需要适配,大地图直接挂上去就完事了,总而言之,我们需要的适配一般都是用来做hud.按照这样做,我在测试时是基本上creator的所有机型都是ok的,我自己添加了iPhonex和华为p10也没啥问题,奇葩的机型我也还没遇到过,按照这个思路解决应该问题也不大.适配的问题说完了.

下面我们说一说刘海的问题,这个就更加容易去解决了,写个通用的组件脚本,在里面专门判断机型是否有刘海,然后绑定一个界面节点 ,自然就是绑定top节点的了,然后如果有刘海我们就将top节点的widget组件的top加上刘海高度的px,加多少?自己测试!!!

这些弄完了还不是都解决了!!如果你的游戏需要动态使用一些bg图,我遇到过这种需求,那么美术给的图片是750*1334,但是目标机型高度是不知道的,所以如果动态加载bg你肯定需要做宽高调整,简单粗暴的直接将图片的宽高设置为visibleSize还是啥的?我忘了!!!这样下来动态加载的bg也可以填充整个界面,如果里面还有子控件这时候咋办?子控件按照上面的搞法或者偷懒干脆直接拖进去挂widget都可以,把bg的宽高设置好了之后刷新widget布局就完事了.

至此我所了解的适配方面知识也就这些了,百度了适配方面的资料全是什么setDesignResolutionSize啥啥的,完全没有帮助,上面这些至少可以让你轻松的适配好主流的机型,大半夜的也懒得去写个项目做截图解释了,相信不难理解,希望可以帮助到你,如果对你有用,那就请点个赞咯!

转载著名出处,谢谢.

你可能感兴趣的:(CocosCreator适配笔记)