마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Surfaceview에 대해 질문드립니다..

0 추천

surfaceview를 이용하여 게임 앱을 제작해보고 있습니다.

퍼즐류의 게임으로 한 스테이지를 플레이중에 막힘이 생기거나 잘못했을경우 리셋버튼을 눌러서 다시 시도하는 기능을 추가하려고 합니다.

플레이어가 리셋버튼을 누르는 순간 surfaceview의 그리기를 잠시 멈추고, 해당 스테이지의 정보(리셋되는 퍼즐의 위치등)의 값들을 다시 불러온 뒤에 surfaceview의 그리기를 시작해야 된다는 생각에

run 함수 안에 if문으로 boolean 변수하나를 줘서 잠시동안 그리기를 멈출려고 했으나, if문 안에 dodraw가 실행이 되고 다 돌아가기전에 reset이 되면 튕기는것 같습니다.

그렇다고해서 스레드 자체를 지웠다가 다시 만들면 화면이 깜박이기 때문에 이상해 보이는데 좋은 방법이 없을까요??

 

대략적인 코드는 아래와 같습니다.

 

class ImageThread extends Thread {

    public static boolean isRun=true;

    }

...

public void dodraw(){

...

}

public void run() {

        while(Running) {

           if(isRun) doDraw();

        }

    }

}

 

class GamePage extends AppCompatActivity{

...

private View.OnClickListener ResetListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            isRun= false;

             ....
            isRun=true;
        }
    };

}

 

 

IU (260 포인트) 님이 1월 8일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...