碰撞

quick-cocos2d-x物理引擎之chipmunk(二)

 ̄綄美尐妖づ 提交于 2019-12-03 17:37:37
上一篇讲了quick-cocos2d-x使用chipmunk的使用流程,介绍了World,Body,Shape的建立,这一篇将讲解如何处理物体之间的碰撞。 一、监听事件 quick-cocos2d-x中的chipmunk碰撞处理是通过监听事件来实现的。 -- 设置物体的碰撞类别,默认所有物体都是类别0 Body:setCollisionType(type) -- handle是一个回调函数,碰撞处理将在这个函数中执行 -- collisionTypeA和collisionTypeB是两个int值,表示要监听的是哪两种物体 -- 这两个值在body中设置(上面所示的方法),两个值相同时为监听同种物体之间的碰撞 World:addCollisionScriptListener(handler, collisionTypeA, collisionTypeB) -- handler回调函数,这个函数一定要返回true,不然碰撞后两个物体将会重合,即像是不碰撞一样 -- eventType为碰撞的类别,有四种值: -- begin 开始碰撞 -- preSolve 持续碰撞(相交),可以设置相交时独自的摩擦,弹力等 -- postSolve 调用完preSolve后,做后期处理,比如计算破坏等等 -- separate 分开,当删除一个shape时也会调用 --