本帖最后由 张宇 于 2015-1-19 17:17 编辑
目前egret默认的屏幕适配策略是,分辨率定为480x800,然后根据实际屏幕的大小进行拉伸。这个方法比较简单粗暴。而我们如果想做一个比较专业一点的游戏,最好还是根据屏幕的实际分辨率在游戏中定位每个元素的坐标。这样能根据不同的屏幕做到精确适配。友情提示:个人做的小游戏不要使用这个方法。这个是专业团队使用的,一般美术会出3-4套素材共不同的分辨率来适配使用。个人这么做成本就太高了。
那么怎么做呢。egret本身是不能够获得屏幕的相关信息的,需要我们在初始的js文件里修改。
打开launcher/egret_loader.js
只要把480和800修改成屏幕的分辨率就可以了- egret.StageDelegate.getInstance().setDesignSize(480, 800);
复制代码
获得屏幕分辨率的方法有很多种,我实际测试,发现下面这种方法是最有效的。这个拿到的高度是除去浏览器上下方地址栏的实际有效高度。
- var wid = document.documentElement.clientWidth;
- var hei = document.documentElement.clientHeight;
复制代码
直接把480和800替换成wid和hei就可以了。
安卓手机这样是没问题的,但在iphone上会有问题。比如iphone4\5\5c\5s的宽度都是640,但我们拿到的wid是320。具体的原因就不详说了,可以自己百度。下面写一下解决方法。
- var bet=1;//iphone系列比较特殊,尺寸需要翻倍
- switch(wid){
- case 320://iphone4\5
- bet = 2;
- break;
- case 375://iphone 6
- bet = 2;
- break;
- case 414://iphone 6+
- bet = 3;
- break;
- default :
- bet =1;
- break;
- }
- wid *= bet; hei*= bet;
复制代码
这段代码就是把得到的宽高乘上相应的倍数,就是手机中实际的分辨率。
iphone6和6+没真机测试过,理论上是可以的。
- egret.StageDelegate.getInstance().setDesignSize(wid, hei);
复制代码
ok,搞定。
效果演示地址
附件是源代码
|
-
-
dpi.zip
1.15 MB, 下载次数: 240, 下载积分: 银子 -1
|