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界面~

 

posted @ 2018-05-21 11:58  Mtr1994  阅读(1375)  评论(1编辑  收藏  举报