我正在尝试建立一个简单的记忆游戏。点击一张没有被“翻转”的卡片,只是简单地“翻转”卡片(显露出图像的底面)。
当一张卡片已经显示,第二张卡片被翻转时,我想暂停一秒钟。然后,如果翻过来的牌与第一张牌匹配,我会将它从棋盘上移走,如果不匹配,我会将两张牌都翻回隐藏的阶段。
我有“翻牌”的代码,我只是想知道如何在第二张牌被翻转后暂停一秒钟。
我试过了:
System.Threading.Thread.Sleep(1000)和
Dispatcher.BeginInvoke(() => System.Threading.Thread.Sleep(1000));但它并不像我想的那样工作。这是我的第一个WP7和Silverlight项目,所以我不确定我做错了什么。
任何建议都会受到极大的欢迎!
发布于 2011-05-08 14:42:03
使用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%,应该很接近)
https://stackoverflow.com/questions/5925965
复制相似问题