public override void _Input(Godot.InputEvent @event) { if (@event is InputEventMouseButton || @event is InputEventKey) { InputCallbackEvent icei = new InputCallbackEvent(); if (@event.IsActionPressed("LeftMouseButton")) { icei.lmbClickPressed = true; } if (@event.IsActionReleased("LeftMouseButton")) { icei.lmbClickRelease = true; } if (@event.IsActionPressed("RightMouseButton")) { icei.rmbClickPressed = true; } /* * if (@event.IsActionReleased("RightMouseButton")) icei.rmbClickRelease = true; * if (@event.IsActionPressed("MoveUp")) icei.upPressed = true; * if (@event.IsActionReleased("MoveUp")) icei.upRelease = true; * if (@event.IsActionPressed("MoveDown")) icei.downPressed = true; * if (@event.IsActionReleased("MoveDown")) icei.downRelease = true; * if (@event.IsActionPressed("MoveLeft")) icei.leftPressed = true; * if (@event.IsActionReleased("MoveLeft")) icei.leftRelease = true; * if (@event.IsActionPressed("MoveRight")) icei.rightPressed = true; * if (@event.IsActionReleased("MoveRight")) icei.rightRelease = true; */ icei.FireEvent(); } }
// Override that converts and distributes the input events // to the more sane methods above. public override void Input(Godot.InputEvent inputEvent) { switch (inputEvent) { case Godot.InputEventKey keyEvent: var keyEventArgs = (KeyEventArgs)keyEvent; if (keyEvent.Echo) { return; } else if (keyEvent.Pressed) { KeyDown(keyEventArgs); } else { KeyUp(keyEventArgs); } break; case Godot.InputEventMouseButton mouseButtonEvent: if (mouseButtonEvent.ButtonIndex >= (int)Godot.ButtonList.WheelUp && mouseButtonEvent.ButtonIndex <= (int)Godot.ButtonList.WheelRight) { // Mouse wheel event. var mouseWheelEventArgs = (MouseWheelEventArgs)mouseButtonEvent; MouseWheel(mouseWheelEventArgs); } else { // Mouse button event. var mouseButtonEventArgs = (MouseButtonEventArgs)mouseButtonEvent; if (mouseButtonEvent.Pressed) { MouseDown(mouseButtonEventArgs); if (!mouseButtonEventArgs.Handled) { KeyDown((KeyEventArgs)mouseButtonEvent); } } else { MouseUp(mouseButtonEventArgs); if (!mouseButtonEventArgs.Handled) { KeyUp((KeyEventArgs)mouseButtonEvent); } } } break; case Godot.InputEventMouseMotion mouseMotionEvent: var mouseMoveEventArgs = (MouseMoveEventArgs)mouseMotionEvent; MouseMove(mouseMoveEventArgs); break; } }
public override void _Input(Godot.InputEvent evt) { InputEventMouseMotion mot = evt as InputEventMouseMotion; if (mot != null) { mousePosition = mot.GlobalPosition; mouseMovement = mot.Relative; } }
public override void _InputEvent(Godot.Object viewport, Godot.InputEvent @event, int shapeIdx) { if (Input.IsActionPressed("click")) { if (!movingPlatform) { movePlatform = !movePlatform; } } }
public override void _UnhandledInput(Godot.InputEvent @event) { //If there was a touch screen event if (@event is InputEventScreenTouch screenTouch) { //If the screenTouch was pressed if (screenTouch.Pressed) { if (screenTouch.Index > 1) { //CALL THE DREADED PINCH EVEN TO ZOOM THE SCREEN!!!!! } else { } /* * */ } else { //If the touch is released we bring up the build menu //BRING ME THE TOUCH MENU PEASANTS 28/02/2021 - Auther: IndieRonin //Enadble the touchRay touchRay.Enabled = true; //Set its current position to the taps position touchRay.Position = screenTouch.Position; //Forces the raycast to update and detect the collision with the building object touchRay.ForceRaycastUpdate(); //Check if there is a collision from the touch array if (touchRay.IsColliding()) { //Get the node that the ray collided with Node2D hitNode = touchRay.GetCollider() as Node2D; //Get the position where the screen was touched touchStart = screenTouch.Position; if (hitNode.IsInGroup("Room")) { GD.Print("A room was released on - that sounds dirty"); } } //Get the position where the screen touch was released touchEnd = screenTouch.Position; //Where the touch was released used for dragging or to check if and object with a collider on was clicked on } } }
public override void PreInput(Godot.InputEvent inputEvent) { if (inputEvent is Godot.InputEventKey keyEvent) { var keyEventArgs = (KeyEventArgs)keyEvent; if (keyEvent.Echo) { return; } else if (keyEvent.Pressed) { // TODO: these hacks are in right now for toggling the debug console. // Somehow find a way to make the console use the key binds system? _userInterfaceManager.GDPreKeyDown(keyEventArgs); } else { _userInterfaceManager.GDPreKeyUp(keyEventArgs); } } }
public override void _Input(Godot.InputEvent @event) { if (@event is InputEventMouseButton || @event is InputEventKey) { icei = new InputCallbackEvent(); if (@event.IsActionPressed("LeftClick")) { icei.lmbClickPressed = true; } if (@event.IsActionReleased("LeftClick")) { icei.lmbClickRelease = true; } if (@event.IsActionPressed("RightClick")) { icei.rmbClickPressed = true; } if (@event.IsActionReleased("RightClick")) { icei.rmbClickRelease = true; } if (@event.IsActionPressed("MoveUp")) { icei.upPressed = true; } if (@event.IsActionReleased("MoveUp")) { icei.upRelease = true; } if (@event.IsActionPressed("MoveDown")) { icei.downPressed = true; } if (@event.IsActionReleased("MoveDown")) { icei.downRelease = true; } if (@event.IsActionPressed("MoveLeft")) { icei.leftPressed = true; } if (@event.IsActionReleased("MoveLeft")) { icei.leftRelease = true; } if (@event.IsActionPressed("MoveRight")) { icei.rightPressed = true; } if (@event.IsActionReleased("MoveRight")) { icei.rightRelease = true; } icei.FireEvent(); if (!mouseUpdateCalled) { mouseUpdateCalled = true; mouseUpdate(); mouseUpdateCalled = false; } } if (@event is InputEventMouseMotion) { //Update the mouse position only if the mouse update function is not running yet if (!mouseUpdateCalled) { mouseUpdateCalled = true; mouseUpdate(); mouseUpdateCalled = false; } } }
public override void _UnhandledInput(Godot.InputEvent @event) { ihei = new InputHandleEvent(); if (@event is InputEventMouseButton eventMouseButton) { if (eventMouseButton.Pressed) { if (eventMouseButton.ButtonIndex == (int)ButtonList.Left) { ihei.lmbPressed = true; } if (eventMouseButton.ButtonIndex == (int)ButtonList.Right) { ihei.rmbPressed = true; } } else { if (eventMouseButton.ButtonIndex == (int)ButtonList.Left) { ihei.lmbPressed = false; } if (eventMouseButton.ButtonIndex == (int)ButtonList.Right) { ihei.rmbPressed = false; } } } if (Input.IsKeyPressed((int)KeyList.W)) { ihei.upPressed = true; } else { ihei.upPressed = false; } if (Input.IsKeyPressed((int)KeyList.S)) { ihei.downPressed = true; } else { ihei.downPressed = false; } if (Input.IsKeyPressed((int)KeyList.A)) { ihei.leftPressed = true; } else { ihei.leftPressed = false; } if (Input.IsKeyPressed((int)KeyList.D)) { ihei.rightPressed = true; } else { ihei.rightPressed = false; } if (Input.IsKeyPressed((int)KeyList.Space)) { ihei.jumpPressed = true; } else { ihei.jumpPressed = false; } if (Input.IsKeyPressed((int)KeyList.Control)) { ihei.crouchPressed = true; } else { ihei.crouchPressed = false; } if (Input.IsKeyPressed((int)KeyList.Shift)) { ihei.sprintPressed = true; } else { ihei.sprintPressed = false; } if (Input.IsKeyPressed((int)KeyList.E)) { ihei.abilityPressed = true; } else { ihei.abilityPressed = false; } if (Input.IsKeyPressed((int)KeyList.Q)) { ihei.consolePressed = true; } else { ihei.consolePressed = false; } if (Input.IsKeyPressed((int)KeyList.Escape)) { ihei.escapePressed = true; } else { ihei.escapePressed = false; } // if (@event is InputEventKey eventKey) // { // if (eventKey.Pressed) // { // if (eventKey.Scancode == (int)KeyList.W) ihei.upPressed = true; // if (eventKey.Scancode == (int)KeyList.S) ihei.downPressed = true; // if (eventKey.Scancode == (int)KeyList.A) ihei.leftPressed = true; // if (eventKey.Scancode == (int)KeyList.D) ihei.rightPressed = true; // if (eventKey.Scancode == (int)KeyList.Space) ihei.jumpPressed = true; // if (eventKey.Scancode == (int)KeyList.C) ihei.crouchPressed = true; // if (eventKey.Scancode == (int)KeyList.Shift) ihei.sprintPressed = true; // if (eventKey.Scancode == (int)KeyList.E) ihei.abilityPressed = true; // if (eventKey.Scancode == (int)KeyList.Q) ihei.consolePressed = true; // } // else // { // if (eventKey.Scancode == (int)KeyList.W) ihei.upPressed = false; // if (eventKey.Scancode == (int)KeyList.S) ihei.downPressed = false; // if (eventKey.Scancode == (int)KeyList.A) ihei.leftPressed = false; // if (eventKey.Scancode == (int)KeyList.D) ihei.rightPressed = false; // if (eventKey.Scancode == (int)KeyList.Space) ihei.jumpPressed = false; // if (eventKey.Scancode == (int)KeyList.C) ihei.crouchPressed = false; // if (eventKey.Scancode == (int)KeyList.Shift) ihei.sprintPressed = false; // if (eventKey.Scancode == (int)KeyList.E) ihei.abilityPressed = false; // if (eventKey.Scancode == (int)KeyList.Q) ihei.consolePressed = false; // } // } ihei.FireEvent(); }