js游戏小引擎 (3)—— 多边形碰撞

demo地址:http://www.adanghome.com/js_demo/12/2/


今天解决了多边形碰撞的问题。实现了两个碰撞检测方法,分别是hitTestPoint()和hitTestObj()。可以做多边形的点的碰撞检测,也可以做多边形和多边形的碰撞检测。


爆炸那个mc的形状被定义成了三角形,按空格键旋转,按上下左右移动。注意看控制台,当三角形区域和金币产生碰撞时,会在控制台输出“hit”消息。


当点击爆炸mc的时候,如果点击的点在三角形区域内,可以弹出消息框,如果不在三角形范围内,即使点击在dom节点上也不弹出消息框。


按下回车键可以改变旋转的基点。


====================================


为了让性能好一点,我把mc设计成了polygon和非polygon两种,如果游戏不需要多边形检测,那么主循环中便不更新mc的几个顶点,这样在做某些简单类型的游戏时,性能会好一点。而对于polygon类型的mc,则在主循环时不停地更新顶点位置,这样可以随时得到几个顶点的实际位置,也可以进行多边形的碰撞检测了。


接下来,该做一下sprite容器了,有了它,可以将几个mc组合在一起,一起移动什么的会更加方便。

原文地址:https://www.cnblogs.com/cly84920/p/4426511.html