上次介绍了用box2dweb创建各种刚体,这次来介绍如何用鼠标拖拽刚体,刚体之间的碰撞,以及刚体之间的各种连接。
HTML5游戏开发-Box2dWeb应用(一)-创建各种各样的刚体
http://blog.csdn.net/lufy_legend/article/details/7654607
一,鼠标拖拽刚体
使用lufylegend.js库件后,拖拽刚体变得很简单,只需调用LSprite的setBodyMouseJoint(true);方法即可,修改上一节中的add方法如下
可以看到,我只在加入小鸟的时候,加入了鼠标拖拽,下面是测试连接http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample01/index4.html
二,碰撞检测
使用如下代码来加入碰撞检测事件
这时候的碰撞是所有刚体之间的碰撞,包括静止的和动态的为了方便,我这里使用lufylegend.js中的debug方法来验证
以上方法就是碰撞的检测,意思是当两只小鸟之间发生碰撞的时候,输出"bird and bird",小鸟和其他刚体,或者其他刚体之间发生碰撞的时候输出"bird and other"
这里是测试连接
http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample01/index5.html
下面是运行结果
三,刚体之间的各种链接
最后,我们来看看刚体之间的各种连接,这部分目前没有封装在lufylegend.js里,以后会陆续封装进去,不过现在我们先来看看如何手动实现这些连接
1,距离链接(b2DistanceJointDef)
b2DistanceJointDef可以用来约束两个body之间的距离,用法如下
这里是测试连接
http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample01/index6.html
下面是运行结果
2,旋转链接(b2RevoluteJointDef)
b2RevoluteJointDef可以给两个body设置一个轴心,让两个body绕这个轴心旋转,用法如下
这里是测试连接
http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample01/index7.html
下面是运行结果
3,滑轮链接(b2PulleyJointDef)
b2PulleyJointDef类似滑轮效果,用法如下
这里是测试连接
http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample01/index8.html
下面是运行结果
其余的连接还有,b2GearJoint,b2PrismaticJoint,b2LineJoint,b2WeldJoint等多种链接,这些等以后封装到lufylegend.js后再详细介绍,这里不细说了,想了解的朋友可以查阅一下相关资料
最后给出这两次内容的所有源代码
http://fsanguo.comoj.com/download.php?i=box2d_sample01.rar
注意,上面只是源码,如果想要在本地运行这些源码的话,需要自己下载lufylegend.js库件以及box2dweb,然后进行配置
有了上面的介绍,应该可以做一个物理游戏了,相信大家都知道一款非常有名的游戏《愤怒的小鸟》,下次咱们来研究一下如何用html5来实现它