0

だから私は現在 "e" in: private void OnUpdate(object sender, GameTimerEventArgs e) を使用して世界の速度を更新し続けるゲームを実行していますが、ゲームを再起動するときにこの GameTimerEventArgs をリセットする方法がわかりません(実際にゲームを終了することなく)

これが私がそれを使用する方法です

  worldSpeed = (float)(3 + e.TotalTime.TotalMilliseconds / 10000);

提案?

4

1 に答える 1

2

GameTimerEventArgs.ElapsedTime各フレームをクエリします。無視しTotalTimeます。

経過時間を変数に累積します。このようにして、ゲームを再開するときに変数をゼロにリセットできます。一時停止中に時間を蓄積しないことで一時停止を実装することもできます。

worldSpeedあなたの場合、ゲームプレイが進むにつれて増加しているように見えます。したがって、実行に費やした時間を蓄積するのではなく、次worldSpeedのように変更を蓄積することができます。

if(!paused)
{
    worldSpeed += (float)(e.ElapsedTime.TotalMilliseconds / 10000f);
}

worldSpeedまた、再起動するたびに3に設定します。

于 2012-04-23T04:17:27.277 に答える