Ich arbeite an einer Tetris-App und ich habe einen Thread.sleep
Befehl, um das Fallen der Tetriminos zu animieren. Aber das erzeugt einen Konflikt mit der Benutzeroberfläche. So habe ich runOnUiThread() so ausprobiert:Beste Methode Android-UI in der While-Schleife zu aktualisieren
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();
}
});
Aber die UI wird nur aktualisiert, nachdem das Spiel endet. Glaubst du, AsyncTask ist ein guter Ansatz? Bitte beachte, dass ich später zusätzliche UI-Threads benötige, um die Tetriminos nach links und rechts zu verschieben und so weiter. Danke!
Sie haben mich erwischt! * G * Ich dachte, es könnte für Tetris gelten, aber ich war mir auch sicher, dass es bessere Möglichkeiten gibt, es zu tun. Ich werde in das Tutorial schauen. Danke – user1734984
Es kann für Tetris anwendbar sein, aber Sie möchten nicht mehrere Threads in einem Spiel allein behandeln. Es ist nur Horror. – Cottontree