2011-12-25 2 views
4

저는 특정 객체 (box2d 본문으로 모델링 됨)가 고정 경로를 따라야하는 게임을 만들고 있습니다. 경로 좌표를 지정하고 각 dt에 대해 객체 위로 이동시킬 수있는 방법이 있습니까? 수동으로, 당신은 역학과 충돌이 올바르게 적용 할 수의 속도를 변경해야Box2d 객체가 미리 결정된 경로를 따르도록 만들기

감사

답변

6

또 다른 옵션 :

  • 몸을
1

당신은 운동 학적 몸을 사용해야합니다,하지만 당신은 그 위치를 변경할 수 없습니다.

나는 다음과 같은 알고리즘을 제안한다

1 - 몸이 다음 DT에에서해야한다는 트랙의 위치를 ​​계산합니다.

두 번째 - 벡터가 몸체가있는 위치에서 다음 위치로 이동합니다.

세 번째 - 정상화하십시오.

4rd - 몸체가 다음 루프에서 그 위치에 있도록하기 위해 필요한 속도를 계산하고 벡터에서 해당 속도를 곱하십시오.

5th -이 벡터를 본문의 선형 속도에 적용합니다.

참고 : 4 단계 계산이 더 쉽도록 운동 학적 몸체에 제로 항력이 있는지 확인하십시오.

저는 이런 식으로 한 적이 없었습니다. 나는 이렇게 할 수 있다고 생각합니다. 는 희망이 도움 :)

+0

체크 hiepnd의 답변을 이동하는 몸에 마우스 관절의

  • 사용 setTarget 방법을 마우스 조인트를 부착, 그것을 훨씬 쉽게, 그리고 같은 결과를 제공해야합니다 :) –

  • +0

    고마워. 나는 비슷한 것을했다. 다음 위치를 알고 있기 때문에 4 단계에서 body에 setTransform을 사용했습니다. 이러한 메소드의 문제 : 일시적인 상태를 계산하여 onUpdate에 지정해야합니다. 이제 다른 방법으로 box2d가 위치 계산을 대신 수행하는지 확인합니다. – Nav

    관련 문제