【问题标题】:How to quickly format floating point number in Android game loop?如何在Android游戏循环中快速格式化浮点数?
【发布时间】:2011-05-26 09:50:46
【问题描述】:

我想在游戏中显示毫秒计时器值。

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(), ...);

但我认为它可以做得更快。你能指导我正确的方向吗?谢谢


related question

【问题讨论】:

  • final 可能是变量。否则我无法想象比你现在拥有的更多。这是任务关键代码吗?您是否考虑将其放入 NDK 函数中?
  • 使用静态 StringBuilder 和 final 变量,以及 TIME: pre-drawn。

标签: android string formatting string-formatting


【解决方案1】:

一些想法:

  • 使用大容量初始化的静态StringBuilder
  • 使用原生函数
  • 预先绘制了“TIME:”(我假设它不会移动)
  • 以毫秒为单位保持时间值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多