Как быстро отформатировать число с плавающей запятой в игровом цикле Android? - PullRequest
3 голосов
/ 16 декабря 2010

Я бы хотел отобразить значение таймера в миллисекундах в игре.

String.format адски медленно работает на Android, поэтому я не могу его использовать. Я сейчас пользуюсь это:

long elapsedMillis = ...; //elapsed milliseconds
int whole = (int)(elapsedMillis / 1000);
int fraction = (int)(elapsedMillis % 1000);
StringBuilder sb = new StringBuilder("TIME:");
sb.append(whole);
sb.append('.');
if(fraction < 10)
sb.append("00");
else if(fraction < 100)
sb.append("0");
sb.append(fraction);
g.drawText(sb.toString(), ...);

но я думаю, что это можно сделать быстрее. Можете ли вы направить меня в правильном направлении? Спасибо


связанный вопрос

1 Ответ

3 голосов
/ 16 декабря 2010

некоторые идеи:

  • использовать статический StringBuilder, инициализированный с большой емкостью
  • использовать встроенную функцию
  • предварительно нарисовано "ВРЕМЯ:" (я полагаю, оно не двигается)
  • сохранить значение времени в миллисекундах
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...