2014-12-16 1 views

답변

0

tutorials on MSDN을 보았습니까? 특히 Detecting collisions in a 2D HTML5 game은 (는) 귀하의 관심 분야와 관련이있는 것으로 보입니다. 튜토리얼에서 사용되는 기술은 기본적 것을

var circlesOverlap = function(circleA, circleB) { // Public. Returns true if the SVG circles A and B overlap, false otherwise. 
    var deltaX = circleA.cx.baseVal.value - circleB.cx.baseVal.value; 
    var deltaY = circleA.cy.baseVal.value - circleB.cy.baseVal.value; 
    var distance = Math.sqrt((deltaX*deltaX) + (deltaY*deltaY)); // The classic distance-between-two-points formula. 
    var radiusA = circleA.r.baseVal.value; // The radius of circle A. 
    var radiusB = circleB.r.baseVal.value; // The radius of circle B. 

    if (circleA.id == circleB.id) // If true, circleA and circleB are the same circle. 
    return false; 

    return distance <= (radiusA + radiusB); 
}; // circlesOverlap() 

that.circlesOverlap = circlesOverlap; 

주 : 특히

는 여기에 튜토리얼에서 충돌을 감지하는 데 사용되는 코드입니다

  • 트랙 각 개체
  • 을 계산 객체 간의 거리
  • 이에 따라 적절하게 응답하십시오 (예 : 거리가 0 인 경우).

(업데이트 : 아래의 의견에 따라, 질문 내용과 관련성이 가장 높은 샘플 추가) 전체 문맥하지만, 전체 튜토리얼을 읽을 시간이 걸릴 말고 인해 신용을 보장하기 위해

을 정당하게 적립됩니다. 이 도움이

희망 ...

- 랜스

+0

더는 대답보다 주석 보인다? – markE

+0

그것은 무엇입니까? 죄송합니다. 아직 쓴 규칙을 배우는 중입니다. 그런 것들에 대한 FAQ가 있습니까? 나는 보았지만 찾지 못했습니다. –

+0

링크가 잘못되면 게시물이 망가질 것이므로 일반적으로 링크 전용 답변은 권장되지 않습니다. http://stackoverflow.com/help/how-to-answer 따라서 기본적으로 링크 전용 게시물은 댓글에 더 잘 표시됩니다. :-) – markE

0

개체를 사용하여 각 원의 x 및 y 좌표, x 및 y 속도 (픽셀 단위) 및 반경을 저장합니다. 모든 서클의 목록을 유지하십시오. 애니메이션 루프를 반복 할 때마다 x 및 y 속도로 표시된 픽셀 수만큼 원이 앞으로 이동하면 각 원의 x 및 y 좌표가 반지름을 더한 값 또는 빼기 값이 서로 겹치지 않는지 확인합니다. 그럴 경우 원하는 방향 (예 : 방향 변경, 정지 등)을 처리 한 다음 다시 그립니다.