Qt 5.10 集成 Box2D 物理引擎
集成环境: Windows 7 x64 Qt 5.10.0 x32
Box2D是一个强大的开源物理游戏引擎,用来模拟2D刚体物体运动和碰撞,由Erin Catto早在2007年用C++语言开发。
Box2D集成了大量的物理力学和运动学的计算,并将物理模拟过程封装到类对象中,将对物体的操作,以简单友好的接口提供给开发者。我们只需要调用引擎中相应的对象或函数,就可以模拟现实生活中的加速、减速、抛物线运动、万有引力、碰撞反弹等等各种真实的物理运动。
简单的说,Box2D就是一个物理刚体仿真库。
QML 提供了 Box2D 的插件,方便 Qter 使用,具体的集成流程如下:
1. 下载 Box2D 源码
友情链接: https://github.com/qml-box2d/qml-box2d
2. 解压 qml-box2d-master 压缩包,使用 Qt 打开 根目录下 box2d.pro,选择你要的平台和版本(Windows、Android)(Denug、Release),进行编译:
编译后会在程序同级目录下产生一个 build-box2d 文件夹(在程序的 pro 文件中定义的输出目录),在文件夹中有一个 Debug 和 Release 文件夹,使用 Release 编译则打开 Release 文件夹,Debug 编译就打开Debug 文件夹,里面会有三个文件(前提是编译成功),我们只需要 Box2D.dll 文件。
3. 拷贝库到 Qt 目录下:
打开 Qt 的安装目录下的 qml 目录(查看自己的) D:\Qt\5.10.0\msvc2015\qml ,在文件夹中新建一个 Box2D 目录,可以自定义,但是要保持一致,将 Box2D.dll 拷贝到该文件夹下,同时,在 qml-box2d-master 的加压文件夹中,存在一个 qmldir 文件,也要拷贝到新建的 Box2D 文件中,至此,集成工作完成。
4. 使用方法:
在 qml 文件中,任意的 qml 文件, 使用 import Box2D 2.0 (注意版本号要和自己下载的对应),就可以开始使用该插件了,在 qml-box2d-master 解压的文件夹中的 example 文件夹中有很多例子,可以供 Qter
参考使用,另外,也可以去官方网站查看专业文档 http://box2d.org/documentation/
结束语:
Qt 在编辑 UI 方面有得天独厚的优势,配合上真实的物理引擎,可以轻松写出很棒的UI界面~