GameView ( extends SurfaceView )


public GameView(Context context) {

~~~

mThread=new GameThread(mholder);

~~~

}


public void surfaceCreated(SurfaceHolder arg0) {

mThread.start();

}


이렇게 되어있구요

GameThread은

public GameThread(SurfaceHolder holder) {

~~

drawLoading();

~~

}


public void drawLoading(){

Canvas canvas=null;

canvas=mHolder.lockCanvas();

try{

synchronized(mHolder){

canvas.drawColor(Color.BLACK);

canvas.drawText("Loading...", width/2, height/2, p);

}

} catch (Exception e){

} finally{

if(canvas!=null){

mHolder.unlockCanvasAndPost(canvas);

}

}

}


이렇게 되도록 했습니다.

그러니까 로딩하기 전에 drawLoading으로 로딩 메시지를 띄웁니다.

로딩이 끝나면 이제 메인 스레드에서 게임 부분을 구현합니다.


그런데 문제는, 게임을 처음 시작하면 바로 게임 화면이 뜹니다.

drawLoading()을 하고 나서 Thread.sleep()을 쓰든 뭘 하든 로딩메시지는 뜨지 않구요,



죽으면

~~(스레드 정지)

mThread=null;

mThread=new GameThread(mholder);

mThread.start();

이렇게 되어 있습니다.

그런데 죽고 나면 게임이 멈춥니다.

죽었을때 메시지에서 멈춥니다.