2011-05-08 96 views
2

我正在嘗試構建一個簡單的記憶遊戲。點擊一張沒有被「翻轉」的卡只是「翻轉」卡片(揭示圖像的底面)。操作之間暫停

當一張卡已經顯示並且第二張卡被翻轉時,我想暫停一秒。然後,如果被翻轉的牌與第一張牌相匹配,我將它從牌上移除,如果不匹配,我想將兩張牌翻回到他們隱藏的階段。

我有「翻轉」編碼,我只想知道如何在第二張牌被翻轉後暫停一秒鐘。

我已經試過:

System.Threading.Thread.Sleep(1000) 

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

但它不工作,像我想要的。這是我的第一個WP7和Silverlight項目,所以不知道我做錯了什麼。

任何建議將大大appreaciated!

回答

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(); 
} 

然後在蜱方法,你翻轉卡片。你可以讓定時器成爲類成員,在這種情況下(根據你自己的一些邏輯),你可以隨時停止定時器的開啓。

希望幫助

(注意,我趕緊剛剛輸入了這個代碼,可能不是100%,應接近)