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!"); }
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; } }