run()
메서드 내에 간단한 게임 루프가 있습니다. 수업은 Runnable
을 구현하고 있습니다. 저는 플레이어가 플레이 한 시간을 추적하기위한 간단한 타이밍 코드를 만들고 싶습니다. 2 분 후에 게임을 끝내고 싶다고합시다.run() 메서드 내부 시간
화면에 표시되는 시간이 초가 아니기 때문에이 작업을 수행 할 것인지 확신 할 수 없습니다. long
시간 형식 (예 : 1370502588)입니다. 무엇이 잘못 되었나요?
// Game loop ---------------------------------------
@Override
public void run() {
// TODO Auto-generated method stub
// Time
long startGameTime = 0;
long milliSeconds;
int seconds;
while (gameRunning) {
if (!surfaceHolder.getSurface().isValid())
continue;
try {
milliSeconds = System.currentTimeMillis() - startGameTime;
seconds = (int) (milliSeconds/1000);
if (seconds > 120)
// Game over
canvas = surfaceHolder.lockCanvas();
...
EDIT : 여기서
는 run()
있어서 내부 코드의 일부 로그 캣
06-06 07:27:06.831: E/Trace(864): error opening trace file: No such file or directory (2)
06-06 07:27:07.601: D/libEGL(864): loaded /system/lib/egl/libEGL_emulation.so
06-06 07:27:07.611: D/(864): HostConnection::get() New Host Connection established 0x2a142400, tid 864
06-06 07:27:07.721: D/libEGL(864): loaded /system/lib/egl/libGLESv1_CM_emulation.so
06-06 07:27:07.721: D/libEGL(864): loaded /system/lib/egl/libGLESv2_emulation.so
06-06 07:27:07.731: D/dalvikvm(864): GC_CONCURRENT freed 232K, 10% free 7430K/8199K, paused 99ms+117ms, total 354ms
06-06 07:27:07.801: W/EGL_emulation(864): eglSurfaceAttrib not implemented
06-06 07:27:07.821: D/OpenGLRenderer(864): Enabling debug mode 0
06-06 07:27:08.121: I/Choreographer(864): Skipped 35 frames! The application may be doing too much work on its main thread.
06-06 07:27:08.201: W/dalvikvm(864): threadid=12: thread exiting with uncaught exception (group=0x40a13300)
06-06 07:27:08.211: E/AndroidRuntime(864): FATAL EXCEPTION: Thread-88
06-06 07:27:08.211: E/AndroidRuntime(864): java.lang.IllegalArgumentException
06-06 07:27:08.211: E/AndroidRuntime(864): at android.view.Surface.unlockCanvasAndPost(Native Method)
06-06 07:27:08.211: E/AndroidRuntime(864): at android.view.SurfaceView$4.unlockCanvasAndPost(SurfaceView.java:785)
06-06 07:27:08.211: E/AndroidRuntime(864): at se.test.game.GameLoop.run(GameLoop.java:269)
06-06 07:27:08.211: E/AndroidRuntime(864): at java.lang.Thread.run(Thread.java:856)
logcat?을 게시 할 수 있습니까? timertask에서 UI를 업데이트하고 있습니까? – Raghunandan