Beispiel #1
0
        private void Window_Loaded(object sender, EventArgs e)
        {
            playfield.ClipToBounds = true;

            fallingThings = new FallingThings(MaxShapes, targetFramerate, NumIntraFrames);

            UpdatePlayfieldSize();

            fallingThings.SetGravity(dropGravity);
            fallingThings.SetDropRate(dropRate);
            fallingThings.SetSize(dropSize);
            fallingThings.SetPolies(PolyType.All);
            fallingThings.SetGameMode(FallingThings.GameMode.Off);

            if ((nui != null) && InitializeNui())
            {
                nui.VideoFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_ColorFrameReady);
                nui.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady);

                try
                {
                    recognizer = new Recognizer();
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    recognizer = null;
                }
                if ((recognizer== null) || !recognizer.IsValid())
                {
                    BannerText.NewBanner(Properties.Resources.NoSpeechError, screenRect, false, Color.FromArgb(90, 255, 255, 255));
                    recognizer = null;
                }
                else
                    recognizer.SaidSomething += recognizer_SaidSomething;
            }
            else
            {
                BannerText.NewBanner(Properties.Resources.NoKinectError, screenRect, false, Color.FromArgb(90, 255, 255, 255));
            }

            popSound.Stream = Properties.Resources.Pop_5;
            hitSound.Stream = Properties.Resources.Hit_2;
            squeezeSound.Stream = Properties.Resources.Squeeze;

            popSound.Play();

            Win32.timeBeginPeriod(TimerResolution);
            var gameThread = new Thread(GameThread);
            gameThread.SetApartmentState(ApartmentState.STA);
            gameThread.Start();

            FlyingText.NewFlyingText(screenRect.Width / 30, new Point(screenRect.Width / 2, screenRect.Height / 2), "Shapes!");
        }
Beispiel #2
0
 void recognizer_SaidSomething(object sender, Recognizer.SaidSomethingArgs e)
 {
     FlyingText.NewFlyingText(screenRect.Width / 30, new Point(screenRect.Width / 2, screenRect.Height / 2), e.Matched);
     switch (e.Verb)
     {
         case Recognizer.Verbs.Pause:
             fallingThings.SetDropRate(0);
             fallingThings.SetGravity(0);
             break;
         case Recognizer.Verbs.Resume:
             fallingThings.SetDropRate(dropRate);
             fallingThings.SetGravity(dropGravity);
             break;
         case Recognizer.Verbs.Reset:
             dropRate = DefaultDropRate;
             dropSize = DefaultDropSize;
             dropGravity = DefaultDropGravity;
             fallingThings.SetPolies(PolyType.All);
             fallingThings.SetDropRate(dropRate);
             fallingThings.SetGravity(dropGravity);
             fallingThings.SetSize(dropSize);
             fallingThings.SetShapesColor(Color.FromRgb(0, 0, 0), true);
             fallingThings.Reset();
             break;
         case Recognizer.Verbs.Up:
             try
             {
                 nui.NuiCamera.ElevationAngle += 5;
             }
             catch { }
             break;
         case Recognizer.Verbs.Down:
             try
             {
                 nui.NuiCamera.ElevationAngle -= 5;
             }
             catch { }
             break;
         case Recognizer.Verbs.Picture:
             takePicture();
             break;
     }
 }