注:文章中很多链接已经失效了,愤怒的小鸟的demo在lufylegend.js引擎下载包中有源码,需要源码的请自己下载。
lufylegend.js引擎官网:http://lufylegend.com/lufylegend
在前面已经实现了利用外力将小鸟弹飞出去,并且实现了镜头的跟随。本次来研究一下小鸟与其他物体之间发生碰撞时的冲力,以及由碰撞而使物体发生变形,进而消失,下面是前两讲的链接,看本篇教程之前请朋友们最好先了解一下。
html5游戏开发-愤怒的小鸟-开源讲座(一)-跳入弹出的小鸟
http://blog.csdn.net/lufy_legend/article/details/7765599
html5游戏开发-愤怒的小鸟-开源讲座(二)-跟随小鸟的镜头
http://blog.csdn.net/lufy_legend/article/details/7782968
其实在box2d中,只要我们设定了物体的密度,摩擦,以及弹力等属性之后,他们之间会模拟真实的世界进行碰撞,如果想要根据这些碰撞来做一些特殊的处理的话,就需要取得它们之间碰撞的冲力,从而根据冲力的大小来做自己想要做的事情,在lufylegend库件中使用下面一行代码来检测碰撞。
LGlobal.box2d.setEvent(LEvent.POST_SOLVE,postSolve);
碰撞函数如下,接受两个参数
function postSolve(contact, impulse){
}
然后用impulse.normalImpulses[0]来取得碰撞产生的冲力大小。
下面,我们来根据碰撞的冲力来控制猪头的状态,首先准备下面两张图