public void Run() { var previousMouseButtonState = MouseButtonState.ALL_RELEASED; foreach (var consoleInput in LowLevelConsoleFunctions.ReadConsoleInput()) { switch (consoleInput.EventType) { case InputEventType.KEY_EVENT: if (consoleInput.KeyEvent.KeyDown) { for (int i = 0; i < consoleInput.KeyEvent.RepeatCount; i++) { HandleKeyEvent(consoleInput.KeyEvent.ToConsoleKeyInfo()); } } break; case InputEventType.MOUSE_EVENT: HandleMouseEvent( previousMouseButtonState, consoleInput.MouseEvent.EventFlags, consoleInput.MouseEvent.ButtonState, consoleInput.MouseEvent.MousePosition); previousMouseButtonState = consoleInput.MouseEvent.ButtonState; break; case InputEventType.WINDOW_BUFFER_SIZE_EVENT: if (_display.CheckSize()) { //window size is correct RevalidateWindow(); } else { //window was resized InvalidateWindow(); } break; default: break; } if (_quit) { break; } } }
public static void Main(string[] args) { Console.Title = "Battleship"; LowLevelConsoleFunctions.SetInputMode( ConsoleModeInput.ENABLE_WINDOW_INPUT | ConsoleModeInput.ENABLE_MOUSE_INPUT | ConsoleModeInput.ENABLE_EXTENDED_FLAGS); LowLevelConsoleFunctions.SetOutputMode( ConsoleModeOutput.DISABLE_NEWLINE_AUTO_RETURN); var game = new Game(); game.Run(); }