@H_
502_0@在做多分辨率适配时,我遇到了一个比较特殊的需求,需要按照现实世界里的真实尺寸做一些适配的工作,这需要
调用Device类的getDPI()
方法来取得当前设备屏幕的DPI值。可惜的是,cocos2d-x 3.2版本默认没有并导出Device类到Lua环境中,所以需要自己动手才行了。
@H_
502_0@
修改frameworks/cocos2d-x/tools/tolua/cocos2dx.ini
文件,在classes段里加入Device类,就像这样:
@H_
502_0@然后在接下来的skip段里加入不导出getTextureDataForText
方法的定义(这个
方法用到了特殊的Data类,导出比较麻烦,暂时不用,所以可以跳过)。注意加到最后一行时要给上一行末尾补个逗号,确保语法正确:
@H_
502_0@接下来去命令行里执行
python project_root/frameworks/cocos2d-x/tools/tolua/genbindings.py
,然后再
cocos compile -p mac
编译一下,就可以在Lua里这么
调用了:
cc.Device:getDPI()
@H_
502_0@在iPod 5上测试通过,打印出来DPI值是326,狠准。
@H_
502_0@另外补充几个常见设备的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 |