[AndEngine学习教程] 第10节 box2D 物理碰撞系统
1.要点
顾着忙工作的事情,两周多没有写微博了,在上一节,基于AndEngine做了个碰撞检测的例子.这个例子对学习基本原理的作用还是有的,
但是用在游戏上就逊色点了,这节,主要基于Box2D系统来做碰撞检测.
Box2D是一个用于模拟2D刚体物体的c++引擎,这里使用的是AndEngine的扩张插件,为了能够高效高速的使用它,底层的实现都是c++编写的,然后通过jni
调用实现的.所以虽然使用java编写代码,但是运行的也很流畅的.
2.本节学习内容
本节主要学习在AndEngine下引入Box2D插件.然后构建的基本物理实体碰撞.本例子主要实现4中外形的实体碰撞:
矩形实体
,圆形实体
,三角形实体
和正六边形实体
;同过触摸屏幕可循环
动态地添加这几种实体.在一个模拟的重力环境下,根据g-sensor的数据来碰撞运动
3.工程配置准备
在本例程的开始,已经讲解了如何配置AndEngine的开发环境.现在主要介绍如何使用Box2D扩张插件
1.到官网下载Box2D插件,网址:https://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension
2.解压后放到AndEngine同一个目录下,在eclipse下通过file->new->project->Android Project from Exist code,
下一步找到box2d解压的文件夹
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420266.jpg)
点击finish.这是回到eclipse,回出现错误,因为没有包含AndEngine库进去,把鼠标放到box2d工程上,右键:
build path->configurate build path.然后按照下图的方法,导入AndEngine的库
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420267.jpg)
接着把box2d工程下libs的andenginephysicsbox2dextension.jar拷贝到你的工程目录下的libs下面.这样字就完成了最基本可以使用的配置了
如果想要在自己的工程中很好的使用eclipse中提供的自动完成功能,建议在自己的工程中进行如下设置:
1.在工程中右键:build path->configurate build path.选中上边的libraries面板,然后点击add library,如下图所示:
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420268.jpg)
接着next,点击user libraries->new->输入"Box2D"名称
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420269.jpg)
Ok后点击add JARs..,一路点击OK finish就可以了.,最后到初始界面,把Box2D的顺序网上挪动到第二个,就是在AndEngine下面就可以了,这样方便编译.
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420270.jpg)
4.代码编写
1.折腾完基础的东西后,当然华丽丽的写代码啦,本例子主要用到5张图片,四个精灵和一张背景,内部成员变量如下设计
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420271.png)
![[AndEngine学习课程] 第10节 box2D 物理碰撞系统](http://img.reader8.net/uploadfile/jiaocheng/2014017/1433/2014011402335420272.png)