Моя проблема в том, что я делаю одну игру и использую класс Surfaceview и рисую растровые изображения на холсте.
Я хочу, чтобы максимальный срок игры составлял 1 минуту, т.е. 60 000 миллисекунд.
Я хочу показать время на холсте, и как только игра начнется, она должна начать уменьшаться, а когда она станет равной нулю, игра закончится.
То, что я сделал, было 1-м, я рассчитал Систему.System.currentTimeMillis () вначале, когда начинается игра, а затем вычитает текущее время, которое я вычисляю внутри функции onDraw () внутри класса, при рисовании снова вызывается n из gameloopthread.я вычесть timegone = currenttime - время начала.
изначально оставшееся время было = 60000. Я продолжаю вычитать его из timeleft timeleft = timeleft-timegone
и затем пытаюсь использовать класс Paint, чтобы записать оставшееся время на холсте после форматирования, чтобы преобразовать егов секундах.
но это дает неправильные тайминги и иногда странным образом меняется + ve aur -ve и меняется случайным образом.
Я также пытался использовать класс Timer, но я не знаю, какой слушатель яможем передать это в классе Surfaceview bcoz, у нас не может быть таких компонентов View, как кнопки и т. д. в SurfaceView.
Пожалуйста, помогите мне в этом отношении, если вы можете предложить какое-нибудь хорошее решение или указать, где я совершаю ошибку.
спасибо и привет, Mayank