box2d Javascript 예제의 간단한 일반 rayCasting

Marcell

Box2D로 rayCasting에 대한 다양한 튜토리얼을 살펴 보았지만 명확한 예를 보지 못했습니다. box2dweb에 익숙한 사람이 다음과 같은 간단한 기능을 설정하는 방법에 대한 명확한 예를 제공 할 수 있기를 바랍니다.

var myRayCastFunction = function(p1,p2,maxFraction){
    //Code here
}

다음과 같이 사용할 수 있다는 아이디어는 다음과 같습니다.

var retVal = myRayCastFunction(p1,p2,maxFraction)
var fixture = retVal.fixture
var point = retVal.point
var normal = retVal.normal
var fraction = retVal.fraction

(이 경우 가장 가까운 교차로를 말하면 단순히 교차로 1 개를 반환하지만 retVel각 교차로에 대한 이러한 출력 목록이있는 유사한 교차로 를 만드는 방법을 알고 싶습니다. )

RayCasting이 box2D에서 어떻게 작동하는지에 대한 모든 세부 사항을 이해하려고 노력해 왔으며 이것이 사용자 정의 콜백 함수를 만들어야한다는 것을 이해합니다 (제 생각에?).하지만 해당 함수를 어디에 배치해야하는지, 그리고 무엇을 그것도 마찬가지입니다.

iforce2d

현재 프로젝트에 레이 캐스팅을 추가하려고했기 때문에이 질문에 답하기 시작했습니다. 실제로 box2dweb에 몇 가지 버그가 있다는 것을 깨달았습니다. 이 게시물을 복잡하게 만드는 대신 세부 정보로 연결하겠습니다. http://www.iforce2d.net/box2dweb-fixes.txt

다음은 레이 캐스트 콜백을 성공적으로 사용한 방법입니다. 콜백 클래스를 선언하고 ReportFixture 함수를 제공합니다.

var RaycastCallback = function() {
    this.m_hit = false;
}
RaycastCallback.prototype.ReportFixture = function(fixture,point,normal,fraction) {

    if ( ... not interested in this fixture ... ) 
        return -1;

    this.m_hit = true;
    this.m_point = point;
    this.m_normal = normal;
    return fraction;
};

이제 세계 RayCast 함수에 전달할 인스턴스를 만듭니다.

var rayStart = ...;
var rayEnd = ...;

var callback = new RaycastCallback();

world.RayCast(callback, rayStart, rayEnd);
if ( callback.m_hit ) {
    ... use callback.m_point etc ...
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동일한 처리 스케치에서 Box2D 및 비디오 사용 문제

분류에서Dev

Processing 및 box2d를 사용하여 단일 웨이브 만들기

분류에서Dev

.d.ts 파일의 구성 및 적용에 대한 간단한 예?

분류에서Dev

Box2d와 libgdx (Android)에서 두 바디 간의 충돌 감지

분류에서Dev

libgdx의 box2d 버전에서 mousejoint와 관련된 이상한 오류

분류에서Dev

파일 가져 오기의 간단한 mysql 예제 + 작동하지 않음

분류에서Dev

Crafty.js 및 Box2d를 사용하여 간단한 원 그리기

분류에서Dev

LibGDX Box2d getWorldPoint 문제

분류에서Dev

PulleyJoint 이상한 행동 Box2D

분류에서Dev

PulleyJoint 이상한 행동 Box2D

분류에서Dev

SetActive의 box2d 호감

분류에서Dev

box2d의 회전 관절

분류에서Dev

눈에 잘 띄지 않는 간단한 JavaScript 예제

분류에서Dev

간단한 예제로 JavaScript 클로저 이해하기

분류에서Dev

awk + 간단한 예제 + 예상과 다른 출력 + 파일의 합계 및 개수 값

분류에서Dev

Box2d에서 충돌에 대한 객체 유형의 경우 변경 가능한 바디 유형?

분류에서Dev

Body는 C ++의 Box2D에서 관절을 추가 한 후 위치를 변경합니다.

분류에서Dev

THREE.js OBJMTLLoader-간단한 예제 파일 요청

분류에서Dev

여러 파일이있는 간단한 nodejs 예제

분류에서Dev

간단한 Opt ++ 예제 컴파일 : dswap_에 대한 정의되지 않은 참조

분류에서Dev

URL의 간단한 맨틀 JSON 예제

분류에서Dev

간단한 예제의 C ++ 다형성

분류에서Dev

struts2 및 Restful에서 예외가있는 간단한 ajax 반환 json

분류에서Dev

libgdx-보간이있는 고정 시간 단계-box2d 없음

분류에서Dev

간단한 Ember.js 예제에 갇혀, 내 javascript 파일이 사용되지 않는다고 생각합니다.

분류에서Dev

libGDX 및 box2d에서 서로 다른 애니메이션 프레임을 보여주는 동일한 스프라이트 클래스의 여러 인스턴스

분류에서Dev

django의 간단한 일반보기를위한 extra_context 함수

분류에서Dev

간단한 AJAX 예제-Silverstripe

분류에서Dev

Spring JDBC 간단한 예제

Related 관련 기사

  1. 1

    동일한 처리 스케치에서 Box2D 및 비디오 사용 문제

  2. 2

    Processing 및 box2d를 사용하여 단일 웨이브 만들기

  3. 3

    .d.ts 파일의 구성 및 적용에 대한 간단한 예?

  4. 4

    Box2d와 libgdx (Android)에서 두 바디 간의 충돌 감지

  5. 5

    libgdx의 box2d 버전에서 mousejoint와 관련된 이상한 오류

  6. 6

    파일 가져 오기의 간단한 mysql 예제 + 작동하지 않음

  7. 7

    Crafty.js 및 Box2d를 사용하여 간단한 원 그리기

  8. 8

    LibGDX Box2d getWorldPoint 문제

  9. 9

    PulleyJoint 이상한 행동 Box2D

  10. 10

    PulleyJoint 이상한 행동 Box2D

  11. 11

    SetActive의 box2d 호감

  12. 12

    box2d의 회전 관절

  13. 13

    눈에 잘 띄지 않는 간단한 JavaScript 예제

  14. 14

    간단한 예제로 JavaScript 클로저 이해하기

  15. 15

    awk + 간단한 예제 + 예상과 다른 출력 + 파일의 합계 및 개수 값

  16. 16

    Box2d에서 충돌에 대한 객체 유형의 경우 변경 가능한 바디 유형?

  17. 17

    Body는 C ++의 Box2D에서 관절을 추가 한 후 위치를 변경합니다.

  18. 18

    THREE.js OBJMTLLoader-간단한 예제 파일 요청

  19. 19

    여러 파일이있는 간단한 nodejs 예제

  20. 20

    간단한 Opt ++ 예제 컴파일 : dswap_에 대한 정의되지 않은 참조

  21. 21

    URL의 간단한 맨틀 JSON 예제

  22. 22

    간단한 예제의 C ++ 다형성

  23. 23

    struts2 및 Restful에서 예외가있는 간단한 ajax 반환 json

  24. 24

    libgdx-보간이있는 고정 시간 단계-box2d 없음

  25. 25

    간단한 Ember.js 예제에 갇혀, 내 javascript 파일이 사용되지 않는다고 생각합니다.

  26. 26

    libGDX 및 box2d에서 서로 다른 애니메이션 프레임을 보여주는 동일한 스프라이트 클래스의 여러 인스턴스

  27. 27

    django의 간단한 일반보기를위한 extra_context 함수

  28. 28

    간단한 AJAX 예제-Silverstripe

  29. 29

    Spring JDBC 간단한 예제

뜨겁다태그

보관