이 모듈의 충돌 검사는 점과 직사각형, (평행) 직사각형과 직사각형, 점과 원, 원과 원으로 제한됩니다. 모양이므로 이 모듈도 매우 간단합니다. 코드를 살펴보세요.
점과 직사각형:
/** *点和矩形间的碰撞 **/ 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)); }
즉, 직사각형의 충돌은 다른 직사각형에 대한 직사각형의 네 점의 위치에 따라 달라집니다. 다음 글의 스프라이트 객체에서는 일반적으로 스프라이트 객체의 직사각형을 구해 객체와 다른 객체 사이의 충돌을 감지합니다. 따라서 직사각형과 직사각형의 충돌도 가장 일반적으로 사용되는 충돌이다.
rree원 안에 점이 있으면 원과 충돌한 것으로 간주됩니다.
원과 원:
/** *点和圆形间的碰撞 **/ 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)); }
원과 원의 충돌은 중심 사이의 거리와 반지름의 합을 비교하여 결정됩니다.
위 내용은 HTML5 게임 프레임워크 cnGameJS 개발 기록 - 충돌 감지 모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!