나는 테트리스 앱을 개발 중이며 Thread.sleep
명령을 사용하여 테트 리미 노스가 떨어지는 것을 애니메이션으로 표시합니다. 하지만 UI와 충돌이 발생합니다. 그래서 나는 다음과 같이 runOnUiThread()를 시도했다.while 루프에서 Android-UI를 업데이트하는 가장 좋은 방법
while (gameover == false) {
tetriminoSettled = false;
try {
Thread.sleep(1000 - (counter * 3));
} catch (InterruptedException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
Random ran = new Random();
int x = ran.nextInt(7) + 1;
addTetrimino(createTetrimino(x)); //the UI operation
gridView.invalidate();
}
});
그러나 UI는 게임이 끝난 후에 만 업데이트된다. AsyncTask가 좋은 접근 방법이라고 생각하십니까? 나중에 테트 리미 네스를 왼쪽이나 오른쪽으로 이동시키기 위해 UI 스레딩이 추가로 필요하다는 것을 명심하십시오. 감사합니다.
당신은 나를 잡았어! * g * 나는 그것이 테트리스에도 적용될 수 있다고 생각했지만, 거기에 더 나은 방법이 있다는 것도 확신했다. 튜토리얼을 살펴 보겠습니다. 감사합니다 – user1734984
그것은 테트리스에 적용 할 수 있지만, 게임에서 여러 스레드를 직접 처리하고 싶지 않습니다. 그것의 공포. – Cottontree