そのため、単純なヘビとはしごのゲームを実行するアクティビティがあり、プレーヤーがボタンをクリックして移動できるようにしたいと考えています。その後、コンピューターが移動します。私の問題は、プレーヤーが移動すると、コンピューターがすぐに移動することです。
代わりに、コンピューターが移動する前にアクティビティを待機させたいのです。いろいろ調べたところ、待機にはスレッドの使用が含まれていることがわかりましたが、アプリがクラッシュすることなく実装できませんでした
スレッドを宣言する私の試み:
final Runnable runnable = new Runnable() {
@Override
public void run()
{
while (true)
{
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
};
Thread thread= new Thread(runnable);
ボタンの onClick() メソッド:
Button rollButton = (Button) (findViewById(R.id.rollButton));
rollButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//executes only if current player is a human
if(GAME_BOARD.getCurrentPlayer().isHuman()) {
GAME_BOARD.rollDie(); // rolls the die
showDie(GAME_BOARD); // displays die on screen
GAME_BOARD.move(); // moves the player and sets next player as current player
playerTurn.setText(GAME_BOARD.getCurrentPlayer().getName() +"'s turn");// sets TextView to display who's player's turn it is
thread.start();
if(!GAME_BOARD.getCurrentPlayer().isHuman()) {
GAME_BOARD.rollDie();
showDie(GAME_BOARD);
GAME_BOARD.move();
playerTurn.setText(GAME_BOARD.getCurrentPlayer().getName() +"'s turn");
}
}
}
});
繰り返しになりますが、私の質問は、2 番目の if ステートメントが実行される前に、アクティビティが待機するようにするにはどうすればよいでしょうか (たとえば 4 秒)。