今天收到PhysicsEditor作者发过来的license key,所以顺便把PhysicsEditor也尝试了一下。主要是尝试将PhysicsEditor与cocos2dx,box2d结合开发的一些步骤。之前大概网络检索了一下,知道PhysicsEditor的功能其实很简单。一句话就是给图片的边缘定位,并且指定图片对齐(重心?)位置,然后导出成plist文件。用来快速给box2d提供图片边缘设定的工具,懒人利器 。废话不多说,我们一步一步开始探索吧。
1. 从官网下好安装文件,在安装包里找到Examples文件夹。选中Cocos2d-X中的工程,导入xcode。
可以看到,其中有其他各类框架的例子程序。选择自己熟悉的框架目录,简单通过这些程序就能知道PhysicsEditor的大致使用方式。
2. 可以看到,GB2ShapeCache-x.cpp中实现了自己的解析类。主要是用来解析PhysicsEditor所生成的plist文件。在HelloWorldScene.cpp中,通过一行代码就能将plist导入进来。
3. HelloWorldScene.cpp中其他代码都是标准的cocos2dx和box2d语法,暂不介绍。这里主要找一下如何将plist中的配置应用到box2d具体的一个body中去。如下图所示,只需要在创建body时调用GB2ShapeCache系列函数,将对应边缘和对齐位置追加到body中就行了。
4. 接下来,看一下实际效果
5. 这样物体下落时就会根据PhysicsEditor设定的边缘,进行边缘碰撞检测。
6. 还缺少什么?是的,我们来看一下PhysicsEditor的真正界面,了解如何生成对应的plist。
进入工程目录,可以看到有一个.pes后缀的文件,就是PhysicsEditor的工程文件,双击打开。
7. 边缘设定和中心点都是可以手动调整的,也可以使用工具栏中的魔棒工具,自动帮你设定好边缘。
最后,选择Publish导出成box2d plist文件格式就OK了。
跟TexturePacker一样,PhysicsEditor是一个简单,但是非常实用的工具。对于cocos2dx快速开发来说确实都是很好的辅助工具。