在操作之间暂停

时间:2011-05-08 06:26:56

标签: silverlight windows-phone-7

我正在尝试构建一个简单的记忆游戏。点击尚未“翻转”的卡片只需“翻转”卡片(露出图像底部)。

当卡片已经显示并且第二张卡片被翻转时,我想暂停一秒钟。然后,如果被翻转的卡与第一张卡匹配,我将其从板上移除,如果不匹配,我想将两张卡翻转回隐藏的舞台。

我有“翻转”编码,我只是想知道如何在翻转第二张卡后暂停一秒钟。

我试过了:

System.Threading.Thread.Sleep(1000)

Dispatcher.BeginInvoke(() => System.Threading.Thread.Sleep(1000));

但它不能像我想的那样工作。这是我的第一个WP7和Silverlight项目,所以不确定我做错了什么。

任何建议都会有很大的帮助!

1 个答案:

答案 0 :(得分:2)

使用DispatcherTimer类:

var timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0,0,0,1);
timer.Tick += SomeTickMethod;
timer.Start();

private void SomeTickMethod(obejct sender, EventArgs e) {
    FlipBackCards();
    //remember to stop it :)
    ((DispatcherTimer)sender).Stop();
}

然后在你的Tick方法中翻转卡片。您可以使计时器成为类成员,在这种情况下(基于您自己的一些逻辑),您可以随时停止()计时器。

希望有所帮助

(注意我很快就输入了这段代码,可能不是100%,应该是关闭的)