private void HandleGameTimer(int param) { // Every so often, notify what our actual framerate is if ((this.frameCount % 100) == 0) { this.myFallingThings.SetFramerate(1000.0 / this.actualFrameTime); } // Advance animations, and do hit testing. for (int i = 0; i < NumIntraFrames; ++i) { foreach (var pair in this.players) { HitType hit = this.myFallingThings.LookForHits(pair.Value.Segments, pair.Value.GetId()); if ((hit & HitType.Squeezed) != 0) { this.squeezeSound.Play(); } else if ((hit & HitType.Popped) != 0) { this.popSound.Play(); } else if ((hit & HitType.Hand) != 0) { this.hitSound.Play(); } } this.myFallingThings.AdvanceFrame(); } // Draw new Wpf scene by adding all objects to canvas playfield.Children.Clear(); this.myFallingThings.DrawFrame(this.playfield.Children); foreach (var player in this.players) { player.Value.Draw(playfield.Children); } BannerText.Draw(playfield.Children); FlyingText.Draw(playfield.Children); this.CheckPlayers(); }
private void HandleGameTimer(int param) { // Every so often, notify what our actual framerate is if ((frameCount % 100) == 0) { myFallingThings.SetFramerate(1000.0 / actualFrameTime); } // Advance animations, and do hit testing. for (int i = 0; i < NumIntraFrames; ++i) { foreach (var pair in players) { HitType hit = myFallingThings.LookForHits(pair.Value.Segments, pair.Value.GetId()); if ((hit & HitType.Correct) != 0) { squeezeSound.Play(); FlyingText.NewFlyingText(screenRect.Width / 30, new Point(screenRect.Width / 2, screenRect.Height / 2), "YES!"); } else if ((hit & HitType.Incorrect) != 0) { popSound.Play(); FlyingText.NewFlyingText(screenRect.Width / 30, new Point(screenRect.Width / 2, screenRect.Height / 2), "Wrong :("); } } myFallingThings.AdvanceFrame(); } // Draw new Wpf scene by adding all objects to canvas playfield.Children.Clear(); myFallingThings.DrawFrame(playfield.Children); foreach (var player in players) { player.Value.Draw(playfield.Children); } BannerText.Draw(playfield.Children); FlyingText.Draw(playfield.Children); this.CheckPlayers(); }