0

Windows Phone 8 用のシンプルな SimonSays アプリを開発しようとしています。

シーケンスをユーザーに見えるようにするために、tastiキー インデックスで満たされた配列 ( ) とfor、配列をチェックしてボタンを暗くするサイクルを使用しています。

私はこのコードを書きました:

   int livello = 1;
   double opac = 0.3;
    void IniziaGioco()
    {
        DispatcherTimer timer5 = new DispatcherTimer();
        timer5.Interval = new TimeSpan(0, 0, 0, 1);
        timer5.Start();
        for (int i = 0; i < livello; i++)
        {
            switch (tasti[i])
            {
                case 1:
                    DispatcherTimer timer = new DispatcherTimer();
                    timer.Interval = new TimeSpan(0, 0, 0, 0, 300);
                    timer.Tick += new EventHandler(DiventaOpaco1);
                    Button1.Opacity = opac;
                    SuonoBottone1.Play();
                    timer.Start();
                    timer5.Start();
                    break;
                case 2:
                    DispatcherTimer timer2 = new DispatcherTimer();
                    timer2.Interval = new TimeSpan(0, 0, 0, 0, 300);
                    timer2.Tick += new EventHandler(DiventaOpaco2);
                    Button2.Opacity = opac;
                    SuonoBottone2.Play();
                    timer2.Start();
                    timer5.Start();
                    break;
                case 3:
                    DispatcherTimer timer3 = new DispatcherTimer();
                    timer3.Interval = new TimeSpan(0, 0, 0, 0, 300);
                    timer3.Tick += new EventHandler(DiventaOpaco3);
                    Button3.Opacity = opac;
                    SuonoBottone3.Play();
                    timer3.Start();
                    timer5.Start();
                    break;
                case 4:
                    DispatcherTimer timer4 = new DispatcherTimer();
                    timer4.Interval = new TimeSpan(0, 0, 0, 0, 300);
                    timer4.Tick += new EventHandler(DiventaOpaco4);
                    Button4.Opacity = opac;
                    SuonoBottone4.Play();
                    timer4.Start();
                    timer5.Start();
                    break;
            }
        }

timer1 timer2 timer3正しく機能し、ボタンをtimer4正しく暗くします。

次のボタンを暗くする前にコードを1秒間「待機」させるために使用したかったtimer5のですが、ボタンが同時に暗くなるため機能しません。

タイマーは最善の方法ですか?コードを機能させるにはどうすればよいですか?

4

3 に答える 3

1

タイマーを使用する代わりに AutoResetEvent.WaitOne(int) を使用できます。AutoResetEvent.WaitOne() メソッドのこのオーバーロードを参照します - http://msdn.microsoft.com/en-us/library/cc189907.aspx。Set() イベントを提供しないと、タイマーが切れて次のコード行が実行されます。

于 2013-08-25T21:20:49.663 に答える