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

在做多分辨率适配时,我遇到了一个比较特殊的需求,需要按照现实世界里的真实尺寸做一些适配的工作,这需要调用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

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...