我正在尝试构建一个简单的记忆游戏。点击尚未“翻转”的卡片只需“翻转”卡片(露出图像底部)。
当卡片已经显示并且第二张卡片被翻转时,我想暂停一秒钟。然后,如果被翻转的卡与第一张卡匹配,我将其从板上移除,如果不匹配,我想将两张卡翻转回隐藏的舞台。
我有“翻转”编码,我只是想知道如何在翻转第二张卡后暂停一秒钟。
我试过了:
System.Threading.Thread.Sleep(1000)
和
Dispatcher.BeginInvoke(() => System.Threading.Thread.Sleep(1000));
但它不能像我想的那样工作。这是我的第一个WP7和Silverlight项目,所以不确定我做错了什么。
任何建议都会有很大的帮助!
答案 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%,应该是关闭的)