Пауза между операциями - PullRequest
2 голосов
/ 08 мая 2011

Я пытаюсь построить простую игру на память.Нажатие на карту, которая не была «перевернута», просто «переворачивает» карту (показывая нижнюю сторону изображения).

Когда карта уже отображается и перевернута вторая карта, я бы хотелсделать паузу на одну секунду.Затем, если перевернутая карта совпадает с первой картой, я вынимаю ее с доски, если она не совпадает, я хотел бы перевернуть обе карты на скрытую стадию.

У меня есть "«щелкнуло», я просто хочу знать, как я могу приостановить его на одну секунду после переворачивания второй карты.

Я пробовал:

System.Threading.Thread.Sleep(1000)

и

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

Но это не работает так, как я хочу.Это мой первый проект WP7 и Silverlight, поэтому не уверен, что я делаю не так.

Любой совет будет очень признателен!

1 Ответ

2 голосов
/ 08 мая 2011

используйте класс 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%, должно быть близко)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...