나는 Java로 시뮬레이션을 작성하여 객체가 Newtonian 물리학에서 작동합니다. 물체에 힘이 가해지면 속도에 따라 움직입니다. 시뮬레이션의 본질은 애니메이션 루프의 현재 반복 이전 반복 사이의 시간에 따라 객체가 개별 단계로 이동한다는 것을 의미합니다. 예를 들어응용 프로그램/스레드에서 측정 된 측정 시간
애니메이션 스레드가있는이 원인 (클릭/최대화가 다시 그리기를 방지 최소화에 유지함으로써 Windows에서되는 고전적인 사례를) ellapse하기 위해 많은 시간을 일으키는 원인이 어떤 방법으로 지연되는 경우 문제가 발생public void animationLoop() {
long prev = System.currentTimeMillis();
long now;
while(true) {
long now = System.currentTimeMillis();
long deltaMillis = now - prev;
prev = now;
if (deltaMillis > 0) { // Some time has passed
for (Mass m : masses) {
m.updatePosition(deltaMillis);
}
// Do all repaints.
}
}
}
놀라운 속도로 움직이는 물체. 내 질문 : wallclock 시간보다는 애니메이션 스레드에서 보낸 시간을 결정하는 방법이 있습니까, 또는 누군가가이 문제를 피하기 위해 해결 방법을 제안 할 수 있습니까?
지금까지 내 생각에 약간의 상한선으로 deltaMillis
을 contstrain하는 것입니다.
: 여기에 두 가지 좋은 선택이다. –