public void Update() { // Dispatch Up foreach (KeyCode keyCode in inputOptions) { InputSignal.Key key = InputSignal.Key.None; switch (keyCode) { case KeyCode.UpArrow: key = InputSignal.Key.Up; break; case KeyCode.DownArrow: key = InputSignal.Key.Down; break; case KeyCode.Space: key = InputSignal.Key.Action; break; } if (Input.GetKeyDown(keyCode)) { InputSignal.Dispatch(key, InputSignal.State.Down); } if (Input.GetKeyUp(keyCode)) { InputSignal.Dispatch(key, InputSignal.State.Up); } } }
private void OnInput(InputSignal.Key key, InputSignal.State state) { if (state == InputSignal.State.Down) { if (key == InputSignal.Key.Up && !GameModel.IsDead()) { View.MoveUp(); } else if (key == InputSignal.Key.Down && !GameModel.IsDead()) { View.MoveDown(); } if (key == InputSignal.Key.Action && !GameModel.IsDead()) { View.Attack(); } } else if (state == InputSignal.State.Up) { if ((key == InputSignal.Key.Up || key == InputSignal.Key.Down)) { View.ResetMove(); } } }