HTML5游戏框架cnGameJS开发实录-碰撞检测模块篇
本模块的碰撞检查只局限于点与矩形,(平行的)矩形与矩形,点与圆形,圆形与圆形之间的检测,因此该模块也很简单,直接结合代码来看看:
点与矩形:
/** *点和矩形间的碰撞 **/ this.col_Point_Rect=function(pointX,pointY,rectObj){ return (pointX>rectObj.x&&pointX<rectObj.right||pointY>rectObj.y&&pointY<rectObj.bottom); }
登录后复制
当一个点在矩形内时,我们认为它们产生了碰撞。
矩形与矩形:
/** *矩形和矩形间的碰撞 **/ this.col_Between_Rects=function(rectObjA,rectObjB){ return ((rectObjA.right>rectObjB.x&&rectObjA.right<rectObjB.right||rectObjA.x>rectObjB.x&&rectObjA.x <rectObjB.right)&&(rectObjA.bottom>rectObjB.y&&rectObjA.bottom<rectObjB.bottom||rectObjA.y<rectObjB.bottom&&rectObjA.bottom>rectObjB.y)); }
登录后复制
简而言之,矩形的碰撞取决于矩形四个点相对于另一个矩形的位置。在后续文章的sprite对象中,我们通常通过获取sprite对象的矩形来检测对象和其他对象的碰撞。因此矩形和矩形的碰撞也是用得最多的碰撞。
/** *点和圆形间的碰撞 **/ this.col_Point_Circle=function(pointX,pointY,circleObj){ return(Math.pow((pointX-circleObj.x),2)+Math.pow((pointY-circleObj.y),2)<Math.pow(circleObj.r,2)); }
登录后复制
点在圆形内则认为该点和圆形产生碰撞。
圆形和圆形:
/** *圆形和圆形间的碰撞 **/ this.col_between_Circles=function(circleObjA,circleObjB){ return(Math.pow((circleObjA.x-circleObjB.x),2)+Math.pow((circleObjA.y-circleObjB.y),2)<Math.pow((circleObjA.r+circleObjB).r,2)); }
登录后复制
圆形和圆形的碰撞取决于它们圆心距离和它们半径大小之和的比较。
以上是HTML5游戏框架cnGameJS开发实录-碰撞检测模块篇的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前
By DDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前
By DDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前
By DDD
<🎜>:死铁路 - 如何完成所有挑战
4 周前
By DDD
Atomfall指南:项目位置,任务指南和技巧
1 个月前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)
