加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x在Lua环境下取得Device类的getDPI()方法

发布时间:2020-12-14 19:59:44 所属栏目:百科 来源:网络整理
导读:在做多分辨率适配时,我遇到了一个比较特殊的需求,需要按照现实世界里的真实尺寸做一些适配的工作,这需要调用Device类的getDPI()方法来取得当前设备屏幕的DPI值。可惜的是,cocos2d-x 3.2版本默认没有并导出Device类到Lua环境中,所以需要自己动手才行了。

在做多分辨率适配时,我遇到了一个比较特殊的需求,需要按照现实世界里的真实尺寸做一些适配的工作,这需要调用Device类的getDPI()方法来取得当前设备屏幕的DPI值。可惜的是,cocos2d-x 3.2版本默认没有并导出Device类到Lua环境中,所以需要自己动手才行了。

修改frameworks/cocos2d-x/tools/tolua/cocos2dx.ini文件,在classes段里加入Device类,就像这样:

然后在接下来的skip段里加入不导出getTextureDataForText方法的定义(这个方法用到了特殊的Data类,导出比较麻烦,暂时不用,所以可以跳过)。注意加到最后一行时要给上一行末尾补个逗号,确保语法正确:

接下来去命令行里执行python project_root/frameworks/cocos2d-x/tools/tolua/genbindings.py,然后再cocos compile -p mac编译一下,就可以在Lua里这么调用了:

cc.Device:getDPI()

在iPod 5上测试通过,打印出来DPI值是326,狠准。

另外补充几个常见设备的DPI值:

设备 DPI
iPhone 6 Plus 401
iPhone 6 326
iPhone 5S 326
iPhone 5C 326
iPhone 5 326
iPhone 4S 326
iPhone 4 326
iPod 5 326
iPod 4 326
iPad Mini 326
iPad Air 264
iPad 4 264
iPad 3 264
RMBP 15" 220
RMBP 13" 227

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读