대화
y=f(x)님의 글에서 이어진 답글 0개
★ 원과 선분의 충돌검사 [자작] 이 액션은 키보드 피하기 만들때 아주 유용할 것입니다. 사용법 : _cl_hitTest(원의 중심점,반지름,선의 꼭지점1,선의 꼭지점2); 충돌시 true를 리턴. function _cl_hitTest(C:Point, R:Number, P1:Point, P2:Point):Boolean { if (P1.equals(P2)) { return Point.distance(P1, C) Point.distance(P2, C) ? P2 : P1; d = Math.min(Point.distance(P1, C), Point.distance(P2, C)); if (!d) { return true; } return a && _cCLCol(C, P1, P2, new Point((C.x-cp.x)/d, (C.y-cp.y)/d), R); } function _cCLCol(Cp:Point, p1:Point, p2:Point, Vec:Point, R:Number) { var a = [(Cp.x+Vec.x*R)*Vec.x+(Cp.y+Vec.y*R)*Vec.y, (Cp.x-Vec.x*R)*Vec.x+(Cp.y-Vec.y*R)*Vec.y]; if (a[0]>a[1]) { a.reverse(); } var b = [p1.x*Vec.x+p1.y*Vec.y, p2.x*Vec.x+p2.y*Vec.y]; if (b[0]>b[1]) { b.reverse(); } return a[1]>=b[0] && a[0]<=b[1]; } 위의 플래시에 있는 액션은 예제의 액션입니다 (직접 실험해 보세요)
하면 이 대화에 답할 수 있어요.