2012-12-25 2 views
1

가변 시간 단계를 약간 실험 한 후 고정 된 시간 단계를 사용하여 현재 프레임 속도와 별개로 게임 개체를 업데이트했습니다. 상황이 렌더링 될 때, 나는 마지막 두 상태 사이에서 각 객체의 위치, 회전 등을 보간합니다.보간 된 고정 시간 단계가있는 초기 상태

그러나 개체를 처음 렌더링 할 때 무엇을해야합니까? 객체가 초기 상태로 방금 생성되었으므로 사용할 수있는 이전 상태가 없습니다.

답변

1

아무 것도 렌더링하기 전에 배경에서 추가 업데이트 단계를 하나씩 실행할 수 있으므로 항상 두 가지 상태를 사용하여 보간 할 수 있습니다. 또는 "초기 이전 상태"를 초기 상태의 복사본으로 만듭니다.

게임이 시작된 후 처음 몇 초가 지나면 모든 것이 수정 될 것이므로 게임을 시작하기 전에 너무 많은 시간이 걸릴 것이므로 실제로는별로 중요하지 않습니다. — 너무 빨리 플레이어에게 알립니다. .

편집 중 : 게임 중에 생성 된 개체의 경우 대략적인 이전 위치를 얻기 위해 항상 자신의 위치를 ​​역으로 추정 할 수 있습니다. 이것은 단지 객체가 한 번 똑딱 거리는 (또는 보이지 않는) 것보다 낫게 보일 수 있습니다. 외삽 법은 객체의 움직임의 첫 번째 틱에만 영향을 미치기 때문에 여전히 정확하지 않아도됩니다.

+0

게임의 시작 부분에 모든 객체가 생성되면 올바르게 작동합니다. 그러나 게임 중에는 언제든지 개체를 만들 수 있으므로이 짧은 동결은 모든 개체에서 한 번 발생합니다. 예를 들어, 글 머리 기호가 인스턴스화 될 수 있습니다. 그것은 전체 진드기에 앉아서 다음 진드기로 움직이기 시작할 것입니다. – user1925315

+0

개체를 만든 후 업데이트해도 작동합니다. 그러나이 업데이트에서 다른 객체도 업데이트해야한다면 어떻게 될까요? – user1925315

+0

좋은 지적. 객체의 초기 속도를 안다면, 이전의 위치를 ​​대략적으로 얻기 위해 항상 역방향으로 위치를 역삽 할 수 있습니다 (반드시 역 물리학 적 업데이트가 아닌 기본 선형 외삽 법을 사용). 한 번의 진드기가 꽤 짧은 시간이기 때문에 여전히 중요하지 않습니다. –

-2

away3D 4를 사용하십시오 ... 그것은 stage3D, opensource를 사용하며 매우 유용하고 사용하기 쉽습니다!

+1

귀하의 제안이 OP 문제를 해결하는 데 어떻게 도움이 될지 정확하게 설명 하시겠습니까? 아니면 무작위로 스팸하고 있습니까? –