タイマーが関係するゲームがあります。通過する 2 分ごとに、異なるプレイヤー間の新しいラウンドが開始されます。したがって、00:00 から始まるテキスト ボックスがあり、02:00 になるまで毎秒変化します。
ここで、ユーザーがフォームを閉じた場合に、ラウンドの途中でゲームの状態を保存したいと考えています。私がする必要があるのは、読み込み時に、ユーザーが最後にゲームを終了したときにテキストボックスが開始され、通常は 02:00 まで続くことです。
これどうやってするの?
これは私が今まで持っていたもので、トーナメントはフォームです
public Tournament()
{
_timer = new System.Windows.Forms.Timer();
_timer.Interval = 1000;
_timer.Tick += Timer_Tick;
_myDateTime = DateTime.Now;
newDate = new DateTime();
newDate = newDate.AddMinutes(2.00);
_timer.Start();
InitializeComponent();
}
void Timer_Tick(object sender, EventArgs e)
{
var diff = DateTime.Now.Subtract(_myDateTime);
this.textBox1.Text = diff.ToString(@"mm\:ss");
DateTime dt = Convert.ToDateTime(diff.ToString());
if (newDate.Minute == dt.Minute)
{
_timer.Stop();
_myDateTime = DateTime.Now;
displayPointsOrResults();
this.textBox1.Text = diff.ToString(@"mm\:ss");
}
}
私の LoadGame メソッド: timePassed は、テキスト ボックスに書いたものです。
string[] splitted6 = timePassed.Split(':');
if (splitted6[0] == "00")
{
int remainingTime = 120 - Convert.ToInt32(splitted6[1]);
DateTime time = DateTime.Now.Date;
time = time.AddMinutes(remainingTime);
_myDateTime = time;
}
else
{
int leftTime = Convert.ToInt32(splitted[0].Trim('0') + splitted[1]);
int remainingTime = 120 - leftTime;
DateTime time = DateTime.Now.Date;
time = time.AddMinutes(remainingTime);
_myDateTime = time;
}