電子書籍の厳選無料作品が豊富!

Android勉強中なのです。

あるゲームを作っていて時間表示をしているのですが、○分○秒と表示するソースの打ち方が分かりません。どなたか、分かる方ご教授お願いいたします。
<ソース>
class MosView extends View {
public int dispX = 480;
public int dispY = 640;
private int frame = 0; ←ここで時間を数えていきます。
private int score = 0;
private int MosesSpeed = 4;

<中略>

<ソース:ここが表示するソースです>

// Message の描画
Paint paint = new Paint();
paint.setColor(Color.GRAY);
String msg = "Score:" + score +
", Mosqutos:" + (Mosess.size()) +
", Time:" + (frame++); ← ここで1ずつ足していき、表示しています。
paint.setTextSize(24);
canvas.drawText(msg, 2, 30, paint);


 よろしくお願いいたします。

A 回答 (2件)

表示する場面で、時間を計測すると、端末の処理能力によって時間がまちまちになってしまうような気がします。



例えば、
public static long starttime;
public static long endtime;

void startClick() {
starttime = System.getCurrentTime();
}
void finishClick() {
endtime = System.getCurrentTime();
}

void updateView() {
long time = endtime - starttime;
String strtime = Calendar.formattedTime(time); //long型の時間をString型に変える!
tring msg = "Score:" + strtime;
...
}

こんな感じだとどうでしょうか?
(適当にそれらしいAPI作っちゃったんで、pseudo codeってことで。)
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。

おっしゃる通りです。もう一度考えます。
ありがとうございました。

お礼日時:2012/09/18 18:24

変数frameが秒単位になっているのでしょうか?


よくわかりませんが、そうだと仮定してよいのなら1分は60秒なので単純に変換してあげればよろしいかと。

 var time = frame>59?Math.floor(frame/60) + "分":"";
 time += (frame++)%60 + "秒";

とか。
    • good
    • 0
この回答へのお礼

他の方のご指摘で違う問題がでてきてしまい、もう1回調整することになりました。
 お忙しい中、ありがとうございました。

お礼日時:2012/09/18 18:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!