private void UpdateAction() { List <Key?> keys = _keyboardInput.GetActiveKeys(); Action <Key?> ManageAction = (key) => { switch (key) { case Key.Left: _playerShip.MoveLeft(); break; case Key.Right: _playerShip.MoveRight(); break; case Key.Up: //_playerShip.MoveUp(); break; case Key.Down: //_playerShip.MoveDown(); break; case Key.Space: _weapon.Add(_munitionsFactory.MakeArmament(ArmamentType.Pulsecannon, _playerShip.GetPositionOfCentre())); break; } }; for (int i = keys.Count - 1; i >= 0; i--) { ManageAction(keys[i]); } }
/// <summary> /// Manage responses based on keys pressed for main menu and overall game state management /// </summary> /// <param name="sender"></param> /// <param name="kea"></param> private void KeyUp_Pressed(object sender, KeyEventArgs kea) { List <Key?> keys = _keyboardInput.GetActiveKeys(); Action <Key?> ManageAction = (key) => { switch (key) { case Key.P: btnPause_Click(sender, null); break; case Key.Escape: btnPause_Click(sender, null); break; } }; for (int i = keys.Count - 1; i >= 0; i--) { ManageAction(keys[i]); } _keyboardInput.ClearKeys(); }