2012-06-27 4 views
1

Android (java)에서 게임 시간을 추적하는 간단한 방법이 있습니까? 예를 들어 어떤 프레임 속도에 상관없이 유동체를 유지하려면 마지막 프레임 이후 경과 한 시간을 고려해야합니다. 이것은 XNA에서 (당신을위한 모든 설정 이래로) 꽤 쉽게 할 수 있습니다.하지만 게임 엔진이 없어도 C#에서 여전히 timeSpan을 사용할 수 있습니다. 나는 자바에 대한 시간대를 찾아 보았으나 많은 시간이 걸리지 않았다. 프레임 타이밍을 처리하는 것과 동등한 짧은 방법이 있습니까?Gametime in Android

답변

0

게임 논리 프레임 속도의 독립적 인 별도의 스레드에서 실행해야합니다. 그런 다음 화면을 새로 고칠 때 객체를 현재 상태로 그립니다.

당신이 의미가 SystemClock.elapsedRealTime

0

잘 지연된 스레드를 실행할 수있는 핸들러 클래스가 있습니다.

postDelayed(Runnable action, long delayMillis) 

당신은 스레드가 특정 gametime을 설정하려면이 옵션을 사용할 수 있습니다. 여기서 delayMillis를 33으로 설정하면 초당 30 프레임이 조금 넘습니다. 그러나 거기에는 안드로이드 용 게임 라이브러리가있을 것이라고 확신합니다. 그렇다면 이러한 문제에 도움이 될 것입니다.

수동과 같이 각 인스턴스 inbetween 시간을 얻기 위해 시도 할 수 :

long lastTime = 0; 

Thread { 

    if (lastTime != 0) 
     elapsedTime = System.getTimeMillis() - lastTime; 

    lastTime = System.getTimeMillis; 

} 
+0

를 사용하여 시간을 측정 할 수 있어야합니다, 그러나 나는 장치에 따라 가변 프레임 속도를 설명해야합니다. 장치가 60fps를 푸시 할 수 있으면 30fps와 동일한 픽셀 크기로 개체를 이동할 수 있어야합니다. –

+0

수동 수표로 업데이트했지만 직접적인 해결책은 모른다. 죄송합니다! –

+0

그게 지금 유일한 해결책 일거야. –