私はテトリスアプリを開発中で、テトリスの落ちをアニメーション化するコマンドは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