2012-06-17 2 views
3

저는 2D에서 회전 대리석이있는 프로젝트를 진행하고 있습니다. 대리석이 상자의 구석에 닿았을 때를 감지 할 수는 있지만 구석에 닿을 때 어떤 행동을 취해야하는지 알 수 없습니다. 상자를 겹치지 않도록 공의 위치를 ​​재조정하는 방법을 알아야합니다. 상자 충돌 상자를 사용하면 상자를 서로 바로 옆에 놓는 것만 큼 쉽지만 원과 상자의 경우 대리석을 어디로 옮길 지 모르기 때문에 사실적으로 보입니다.원 코너 충돌 동작

나는 어떻게 튀는 지 묻지 않습니다. 나는 삼각 관계에 대해 잘 알고있다. 대리석을 상자쪽으로 움직이면 어떤 시점에서 상자와 겹치게됩니다. 나는 그들이 더 이상 겹치지 않도록 만드는 방법을 알아야하지만 현실적으로 보입니다. 그것은 튀어 나올 필요가 없습니다 (대리석 부분에 무한한 질량을 가짐).

+0

삼각법에 대한 기본적인 이해가 있습니까? –

+2

대리석이 구석과 충돌 할 때 어떻게 튀는가? –

답변

1

위키 피 디아에있는이 기사를 잘 보아라 : Elastic Collision.

주어진 표면 지점에서 2D 오브젝트의 표면 법선을 작성해야합니다. 예를 들어, 날카로운 모서리에 법선이 없기 때문에 상자가 인 경우 문제가됩니다. 코너 케이스 (의도적 인 말장난 없음)에 특별한 대우를하고 모서리에 합류하는 두 라인의 법선의 평균 인 표면 법선을 제공해야합니다.

기본적으로 벡터를 사용하십시오.

+0

제안에 감사하지만 대리석을 "튀게"할 필요가 없습니다. 블록을 겹쳐서는 안되며 대리석이 상자에 닿으면서 겹치지 않도록 위치로 옮기는 것입니다. –

+0

글쎄, 그건 다른 질문이야. 충돌을 감지 할 수 있다면 왜 코너 충돌을 감지 할 수 없습니까? 코드를 다시 생각해 봐야 할 수도 있습니다. – Blender