게임에서 객체 위치 지정 업데이트를 처리할 때 System.currentTimeMillis 사용 중에서 선택합니다. () 및 System.nanoTime()이 중요해집니다. 두 방법 모두 시간 측정을 제공하지만 정확도와 정밀도는 다릅니다.
정밀도는 측정할 수 있는 가장 작은 시간 단위를 의미하지만 정확도는 측정값이 실제 시간에 얼마나 가까운지를 나타냅니다. System.currentTimeMillis()는 밀리초를 반환하고 System.nanoTime()은 나노초를 반환하므로 System.nanoTime()이 더 정확함을 나타냅니다.
질문에서 언급했듯이 운영 체제에는 다양한 시간 해상도가 있습니다. Windows의 보고된 해상도는 50ms인 반면 Mac/Linux의 해상도는 약 1ms입니다. 이는 System.currentTimeMillis()를 사용하는 Windows에서의 측정이 최대 50ms까지 부정확할 수 있음을 의미합니다.
주요 목표는 가능한 가장 정확한 측정을 달성하는 것이기 때문입니다. 객체 위치 지정을 위해서는 System.nanoTime()을 사용하는 것이 좋습니다. 나노초 정밀도를 제공하여 게임에서 더 정확한 시간 측정과 더 부드러운 개체 이동이 가능합니다.
시연하기 위해 다음 코드는 System.nanoTime( ):
long startTime = System.nanoTime(); // ... code to be measured ... long estimatedTime = System.nanoTime() - startTime;
현재 시간에서 startTime을 빼면 나노초로 경과 시간을 얻습니다. 정밀도.
위 내용은 System.currentTimeMillis() 대 System.nanoTime(): 정확한 게임 개체 위치 지정에 가장 적합한 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!