0
ゲームにゲームを完了するために必要な時間を記録するモードをゲームに追加したいとします。複数の変数とwhileループでの再生時間の追跡
私の現在のソリューションはこれです:私は私のゲームを更新するたびに
int timerMilliseconds_= 0;
int timerSeconds_ = 0;
int timerMinutes_ = 0;
int timerHours_ = 0;
が、私は現在のデルタ時間でtimerMilliseconds_
を増やし、更新:私は、時間の経過を追う(様々な理由のために)4つの変数を持っています値。これは次のようになります。
timerMilliseconds_ += dt.asMilliseconds();
if (timerMilliseconds_ >= 1000) {
while (timerMilliseconds_ >= 1000) {
timerMilliseconds_ -= 1000;
timerSeconds_++;
}
while (timerSeconds_ >= 60) {
timerSeconds_ -= 60;
timerMinutes_++;
}
while (timerMinutes_ >= 60) {
timerMinutes_ -= 60;
timerHours_++;
}
}
このコードは動作しているようですが、奇妙な...私に。
これらのループは意味がありますか?私はこれを強化していますか?
私はこれがほぼcodereview価値があることを知っていますが、私はここでより良い答えを得ることができると思った!ありがとうございました!
:
だから、算術演算を使用することができます。私はむしろunsigned intの周りに小さなラッパーを1分のメンバーと時間の変換関数で1分/秒/時間で作成します:)あなたがすべてのフレームで4つの変数すべてを使用していない限り、 – BlackCat
あなたがいる場合でもBlackCatのコメントに追加するすべてのフレームで4つの時間単位を使用すると、各単位のカウントと変わらず、整数除算とモジュロ単位で変換できます。 – Jerry