2016-11-21 8 views
2

내 세계에 여러 개의 튜브가있는 튜브에 공을 넣어야합니다. 나는 튜브의 투어를 ​​완성하기 위해 움직이고 회전하는 상자 모양을 여러 개 만들어 튜브를 만들었습니다. 여태까지는 그런대로 잘됐다.하나의 속도에 따라 몸 사이의 충돌 문제

저는이 튜브와 공 (하나의 구형을 기반으로 한 몸체) 사이의 충돌로 어려움을 겪고 있습니다. 내가 볼에 적용하는 속도에 따라 시체가없는 것처럼 공이 튜브를 통과하는 경우가 있습니다. 더 작은 속도 값을 적용하면 충돌이 예상대로 작동합니다.

나는 솔버의 반복 횟수를 높이거나, 월드의 단계를 변경하거나, contactMaterial의 다양한 옵션을 변경하는 등 많은 수정을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 나는 Cannon.js와 물리 엔진에 대해 상당히 새로운 지식을 가지고 있기 때문에, 나는 나의 세계 나 그와 비슷한 특별한 구성을 놓치고 있는지 궁금해하고있다. (10)에서 shootVelo와

도움이되었습니다. 고마워요 :)

답변

0

나는 크게 충돌과 어떻게 계산에 따라 달라집니다 생각합니다. 얼마 전에 작은 게임을 만들었고 같은 문제가있었습니다. 근본적으로 해결 방법은 객체의 깊이에 움직이는 객체의 현재 위치 차이를 추가하는 것이 었습니다 (그래서 객체를 여전히 움직이고 다른 객체는 움직이는 것으로 간주합니다).

이렇게하면 매우 얇은 객체와 충돌을 수정하고 빠른 스프라이트를 사용하면 스프라이트가 빠르면 (큰 위치 델타) 얇은 객체는 두꺼운 것으로 간주되어 느린 경우에는 얇게 유지됩니다.

설명하기가 어려울 수도 있습니다. 코드를 확인하려면 여기를 클릭하십시오. https://github.com/Mc128k/SquaredBobble

1

터널링 문제 here에 대해 자세히 알아보십시오.

  • 이 적은 시간 간격을 사용
  • 는 튜브 벽 두껍게 만들거나
  • 사항 : Cannon.js가 충돌 검출 (CCD), 따라서 가능한 수정이 연속하지 않습니다 총소리가 작아.