이 문제에 대한 여러분의 제안을 부탁드립니다 ...게임은 프레임 속도에만 의존해야합니까?
간단하게하기 위해 x 축만 살펴 보겠습니다.
이미지 개체가 위치 10에 있으며 그 너비 또한 10 단위로, 초당 100 단위로 이동하며 각 프레임마다 프레임이 낮아서 80 단위를 이동해야합니다. (120)
다음 업데이트 내가 필요 점을 고려 위치 (170)에 개체를 이동합니다 첫 번째 업데이트를 호출 한 후
은 그 위치는 지금 90이고 위치에 같은 크기의 또 다른 목적이있다 충돌 탐지를 구현하고 업데이트 전후에 충돌을 계산하면 아무 것도 작동하지 않습니다.
이제 간단한 질문이옵니다.
이 경우 어떻게해야합니까?
는 같은 마십시오 :이 솔루션을 좋아하지 않아Position start = destinationPos - currentPos;
for (int i; i < start; i++)
if (IsColliding(movingObj.Position + i, staticObj))
//do the colliding stuff here
은,이 사건에 대한 괜찮을 수 있지만, 당신이 X, Y, Z와 움직이는 물체의 많은 경우?
다른 솔루션도 좋을지 모르겠지만 확실한 지 모르겠지만 다른 스레드가 루프에서이 계산을 모두 수행해야합니다.
이 스레드는 무한 루프와 같을 것입니다. 그리고 반복 할 때마다 나는 매우 작을 것이라고 생각하는 elapsedTime
을 계산할 것입니다. 그리고 충돌을 계속 이동하고 계산 스레드를 유지하고 렌더링 스레드를 훨씬 느리게 처리 할 것입니다. 객체의 현재 상태를 가져 와서 렌더링합니다.
너희들은 어떻게 생각하니?
그건 논리적 인 것 같아요. 내 걱정거리는 업데이트/게임 논리 스크립트를 통해 부분적으로 실행되는 것이 무엇이든 '그리기'또는 '렌더링'되거나 비정상적인 방식으로 나타나는 것을 유발한다는 것입니다. 벽이나 부분을 지나는 총알은 아직 지워지지 않았거나 그런 식으로. 자바 스크립트가 주로 비동기식이기 때문에 주로 자바 스크립트에 중점을 둡니다. 다른 언어보다 더 위험하다고 생각하게합니다. – semicolon