В простой карточной игре (человек против процессора) логика работает, но я хочу отложить поворот компьютера.
Я попытался использовать Thread.sleep(int milliseconds)
, который работает, но он портит порядок отображения изображений. Я не использую игровой цикл, я просто динамически обновляю ImageViews всякий раз, когда меняются карты. Проблема с Thread.sleep заключается в том, что все изображения обновляются только после Thread.sleep. Перед Thread.sleep не отображается только человеческая карта. Карта человека и карты компьютера отображаются после Thread.sleep.
Я использовал Thread.sleep так:
playPlayerCard(player); // Human first
displayPile(); // Display card pile (ImageView's)
player = nextPlayer(player); // Get's next player in Player mPlayers List<Player>
// Wait for computer to 'Think'
Thread.sleep(500);
playPlayerCard(player); //Computer's turn
displayPile(); // Display card pile (ImageView's)
Я неправильно использую Thread.sleep ()? Есть ли лучший / правильный путь? Я искал в Интернете и пытался использовать new Thread()
, использовать handler.postDelayed(Runnable r, long milliseconds)
, а также CountDownTimer
, но ни одна из них не работает, поскольку мои переменные: playPlayerCard(player);
не являются окончательными переменными.
У меня всегда были проблемы с задержкой действий и появлением изображений в правильное время. Какие-либо предложения? Заранее спасибо.