protected override void Update(GameTime gameTime) { KStateNow = Keyboard.GetState(); CurrentlyPressedKeys = KStateNow.GetPressedKeys(); foreach (Keys k in FramePressedKeys) { Events.InvokeKeyPressed(k); } if (KStateNow != KStatePrior) { Events.InvokeKeyboardChanged(KStateNow); KStatePrior = KStateNow; } if (Game1.activeClickableMenu != null && Game1.activeClickableMenu != PreviousActiveMenu) { Events.InvokeMenuChanged(Game1.activeClickableMenu); PreviousActiveMenu = Game1.activeClickableMenu; } if (Game1.locations.GetHash() != PreviousGameLocations) { Events.InvokeLocationsChanged(Game1.locations); PreviousGameLocations = Game1.locations.GetHash(); } if (Game1.currentLocation != PreviousGameLocation) { Events.InvokeCurrentLocationChanged(Game1.currentLocation); PreviousGameLocation = Game1.currentLocation; } if (CurrentLocation != null) { CurrentLocation.update(gameTime); } base.Update(gameTime); Events.InvokeUpdateTick(); PreviouslyPressedKeys = CurrentlyPressedKeys; }
private void CheckControlChanges() { KStateNow = Keyboard.GetState(); CurrentlyPressedKeys = KStateNow.GetPressedKeys(); MStateNow = Mouse.GetState(); foreach (var k in FramePressedKeys) { ControlEvents.InvokeKeyPressed(k); } foreach (var k in FrameReleasedKeys) { ControlEvents.InvokeKeyReleased(k); } for (var i = PlayerIndex.One; i <= PlayerIndex.Four; i++) { var buttons = GetFramePressedButtons(i); foreach (var b in buttons) { if (b == Buttons.LeftTrigger || b == Buttons.RightTrigger) { ControlEvents.InvokeTriggerPressed(i, b, b == Buttons.LeftTrigger ? GamePad.GetState(i).Triggers.Left : GamePad.GetState(i).Triggers.Right); } else { ControlEvents.InvokeButtonPressed(i, b); } } } for (PlayerIndex i = PlayerIndex.One; i <= PlayerIndex.Four; i++) { foreach (Buttons b in GetFrameReleasedButtons(i)) { if (b == Buttons.LeftTrigger || b == Buttons.RightTrigger) { ControlEvents.InvokeTriggerReleased(i, b, b == Buttons.LeftTrigger ? GamePad.GetState(i).Triggers.Left : GamePad.GetState(i).Triggers.Right); } else { ControlEvents.InvokeButtonReleased(i, b); } } } if (KStateNow != KStatePrior) { ControlEvents.InvokeKeyboardChanged(KStatePrior, KStateNow); KStatePrior = KStateNow; } if (MStateNow != MStatePrior) { ControlEvents.InvokeMouseChanged(MStatePrior, MStateNow); MStatePrior = MStateNow; } PreviouslyPressedKeys = CurrentlyPressedKeys; for (PlayerIndex i = PlayerIndex.One; i <= PlayerIndex.Four; i++) { PreviouslyPressedButtons[(int)i] = GetButtonsDown(i); } }