你好,我正在研究我在学校的第一个项目,这是一个简单的Brick-Breaker游戏。 当我点击" Pause"我遇到了一个问题。按钮,计时器停止,但当我点击"继续"按钮,计时器继续,好像游戏从未暂停。 我一直在寻找答案,但却无法找到一个可以融入我的程序的程序(我只编程了2个月。)
我的程序已经准备好了,而且所有程序都分为类和方法,因此我要更准确地粘贴重要的行,但是我会给它一个无论如何都要尝试。
我尝试了几种解决方案,比如创建一个秒表,然后将计时器声明为
_time.Text =(duration.TotalSeconds - pausingTimer.Elapsed.TotalSeconds).ToString
但不幸的是,这种思维方式让我无处可去。这些线条会影响游戏的暂停和继续功能。:
//data members (of Game Manager class)
private DispatcherTimer gamingLoopTimer = new DispatcherTimer();
private DateTime _startTime;
private TimeSpan _timeSpan;
private Stopwatch pausingTimer = new Stopwatch();
//ct'or
_timeSpan = new TimeSpan(0, 0, 0, 0, 1);
_difficultyTimeSpan = new TimeSpan(0, 0, 0, 0, 800);
public void StartGame()
{
gamingLoopTimer.Interval = _timeSpan;
gamingLoopTimer.Tick += GamingLoopHandler;
gamingLoopTimer.Start();
increasingDifficultyTimer.Interval = _difficultyTimeSpan;
increasingDifficultyTimer.Tick += IncreasingDifficulty;
increasingDifficultyTimer.Start();
_startTime = DateTime.Now;
private void GamingLoopHandler(object sender, object e)
{
UpdateGameState();
DrawState();
}
private void DrawState()
{
TimeSpan duration = DateTime.Now - _startTime;
_time.Text = (duration.TotalSeconds - pausingTimer.Elapsed.TotalSeconds).ToString
public void StopButton()
{
pausingTimer.Start();
gamingLoopTimer.Stop();
increasingDifficultyTimer.Stop();
_hasStopped = true;
PromptGameStop();
}
private void ContinueToPlay(IUICommand command)
{
pausingTimer.Stop();
pausingTimer.Reset();
gamingLoopTimer.Start();
increasingDifficultyTimer.Start();
_hasStopped = false;
}
注意:我已经尝试仅复制问题的重要代码,我希望我没有删除任何对理解答案者重要的内容。
如上所述,计时器停止,但随后继续,好像它从未停止过一样。
例如,我应该按"暂停"按钮在5秒标记处,然后单击"继续" 15秒后,计时器将从20继续。
感谢您的回答。