2011-05-03 3 views
1

간단한 게임을 쓰려고하는데 단순한 물리라고 생각합니다. 나는 0,0,0 지점에서 1 초당 1 단위로 이동하는 물체를 가지고있다. 지시를 내리면 물체가 초당 15도 회전해야합니다 (시작 위치에서 90도까지 끝납니다). 그리고 초당 1 초당 4 초간 가속합니다 (최종 속도는 5입니다.). 단위 초당), 어떻게 끝점을 계산합니까?선회하고 가속하는 물체의 위치를 ​​어떻게 계산합니까?

저는 가속이 아닌 물체에 대해 이것을 대답하는 방법을 알고 있습니다. 단지 원이기 때문입니다. 위의 예에서 원의 둘레는 4 * 거리 (원의 1/4를 통과하기 때문에)이며, 그로부터 반지름과 각도를 계산하고 간단한 삼각법을 사용하여 답을 해결할 수 있음을 알고 있습니다.

그러나 주어진 순간에 물체가 이전 순간보다 약간 빠르게 이동하기 때문에 최종 결과는 원이 아니기 때문에 일종의 호가 될 것입니다. 각 단계 (예 : 초당 60 단계)를 반복하면서 끝점을 예측할 수 있다고 가정하지만 오류가 발생하고 비효율적이라고 생각합니다.

아무도 올바른 방향으로 나를 가리킬 수 있습니까?

+0

모션을 점진적으로 계산하는 것은 게임에서 일반적으로하는 일입니다. 일반적으로 오류는 중요하지 않습니다.게임에 문제가있는 행동이 있습니까? 예를 들어 오브젝트가 영원히 원을 그리며 위치가 점진적으로 업데이트되면 오류가 눈에 띄게 벗어날 때까지 복합적으로 나타날 수 있습니다. –

+0

내 머리 속에 내 생각에 클라이언트가 내가 예상 한 위치를 예측할 수 있습니다. 앞으로는 필자의 출발점과 마지막 지점을 보내고 지연을 계산하여 다른 고객을위한 클라이언트 예측의 한 형태로 도울 수 있습니다. 또한, 나는 하나의 (약간 큰) 메시지를 덜 자주 보내고 사람들이 있어야하고 있어야하는 곳에 일정 수준의 정확성을 여전히 유지해야합니다. – Bailey

+0

정확히 말하자면, 선회하는 동안 ** 속도의 크기가 일정하더라도 ** 물체가 가속됩니다. 즉, 개체가 초당 1 유닛의 속도를 유지했다면 턴을 만들기 위해 (측면에서) 여전히 가속화됩니다. – ysap

답변

1

스텝핑의 개념은 정확히 당신이하는 일입니다.

거의 모든 게임은 "게임 틱"으로 알려져 있습니다. 실제로 발생할 수있는 여러 가지 진드기가 있습니다.

"게임 틱"- 각 게임 틱, 요청 집합이 실행되고 AI가 다시 평가되며 전반적인 게임 상태가 변경되었습니다.

"물리 틱"- 각 물리 틱, 각 물리적 개체는 현재 물리적 상태에 따라 상태가 변경 될 수 있습니다.

"그래픽 틱"- 렌더링 루프라고도하며 단순히 게임 상태를 화면에 표시합니다.

게임 틱과 물리 틱은 서로 일치해야하지만 일치 할 필요는 없습니다. 현재 이동 벡터를 따라 현재 속도로 물체를 움직이는 물리 틱을 가질 수 있으며 필요할 경우 (속도를 변경하면서) 중력을 적용하면서 완전히 별도의 루프에서 추가 가속을 추가 할 수 있습니다 (아마도 로켓 부스터를 통해?). 적절한 멀티 스레딩 케어로 잘 어울립니다. 그것들이 더 잘 분리 될수록 나중에 더 나은 구현으로 교환하는 것이 더 쉬울 것입니다.

시간 단계를 통한 시뮬레이션은 거의 모든 물리학이 실시간 게임에서 어떻게 이루어 지는지를 나타냅니다. 저는 심지어 국방부의 열 모델링을 사용 했었습니다. 그래서 우리는 물리 모델을 어떻게 모델링 했는지도 모릅니다. (더 큰 컴퓨터를 사용해야했습니다 :-))

또한이 기능을 사용하면 복잡한 회전을 구현할 수 있습니다. 물리 엔진. 물리 엔진에서 특별한 경우가 적 으면 적을수록 문제가 줄어 듭니다.

+0

정말요? 나는 아름다운 우아한 대답을 사냥하면서 너무 많은 시간을 보냈다; 나는 방금 나의 dodgy 해답을 똑바로 작성해야만했다 :) 오, 당신은 살고 배우고. 나는 당신을 투표 하겠지만 분명히 그렇게하기 위해 15 가지 평판 포인트가 필요합니다. – Bailey

+0

나는 지적해야한다. 그것은 전혀 쓸데없는 해결책이 아니다. 또는 적어도 나머지 업계는 그렇게 생각하지 않는다. – corsiKa

+0

예, 죄송합니다. 나는 그것이 마음에 처음이자 쉬운 것이었기 때문에 그것은 단지 dodgy라고 생각했다. 일반적으로, 적어도 물리학에 관해서는, 나는 처음에는 옳은 대답을 내놓지 않습니다. 다시 한번 감사드립니다 :) – Bailey

0

당신이 묻는 것은 실제로 수학 변화 비율 질문입니다. 움직이는 모든 물체는 (x, y, z) 위치 위치를가집니다. 구성 요소 속도와 가속도를 개별 평면으로 분해 할 수 있다면 마지막 종점은 해당 평면에서 방정식의 각 결과 인 (x1, y1, z1)입니다.

도움이 되길 바랍니다. (:

+0

Reading, thanks :) – Bailey