碰撞檢測


碰撞檢測:
1、圓形與矩形的碰撞檢測

函數ComputeCollision,當相對距離小於圓形半徑的時候為碰撞。

  參數介紹(w:矩形的寬,h:矩形的高,r:圓形半徑,rx:圓形中心與矩形中心相對坐標X,ry:圓形中心與矩形中心相對坐標Y)

        function ComputeCollision(w, h, r, rx, ry) {
            var dx = Math.min(rx, w * 0.5);
            var dx1 = Math.max(dx, -w * 0.5);
            var dy = Math.min(ry, h * 0.5);
            var dy1 = Math.max(dy, -h * 0.5);
            return (dx1 - rx) * (dx1 - rx) + (dy1 - ry) * (dy1 - ry) <= r * r;
        }


2、圓形坐標中心位置和矩形坐標中心位置
   圓形坐標指鼠標的位置
   修正圓形的位置,讓鼠標在圓心的中心位置

                //圓心坐標
                var radiusPosX = parseInt((event.clientX || event.x));
                var radiusPosY = parseInt((event.clientY || event.y));

                event = event || window.event;
                //讓鼠標在圓心的位置
                circle.style.left = parseInt(radiusPosX - radius) + "px";
                circle.style.top = parseInt(radiusPosY - radius) + "px";

 矩形的長寬
 矩形的中心位置是(相對距左+寬度,相對距頂+高度)。

                //矩形的長寬
                var rectW = rect.clientWidth;
                var rectH = rect.clientHeight;
                //矩形中心坐標
                var rectPosX = parseInt(rect.offsetLeft) + rectW / 2;
                var rectPosY = parseInt(rect.offsetTop) + rectH / 2;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM