public override void HandleInput(InputHelper input, GameTime gameTime) { if (input.IsNewButtonPress(Buttons.B) || input.IsNewMouseButtonPress(MouseButtons.RightButton) || input.IsNewKeyPress(Keys.Space)) { _walker.Reverse(); } base.HandleInput(input, gameTime); }
public override void HandleInput(InputHelper input, GameTime gameTime) { if (input.IsNewMouseButtonPress(MouseButtons.RightButton) || input.IsNewButtonPress(Buttons.B)) { Vector2 cursorPos = Camera.ConvertScreenToWorld(input.Cursor); Vector2 min = cursorPos - new Vector2(10, 10); Vector2 max = cursorPos + new Vector2(10, 10); AABB aabb = new AABB(ref min, ref max); World.QueryAABB(fixture => { Vector2 fv = fixture.Body.Position - cursorPos; fv.Normalize(); fv *= 40; fixture.Body.ApplyLinearImpulse(ref fv); return true; }, ref aabb); } base.HandleInput(input, gameTime); }
public override void HandleInput(InputHelper input, GameTime gameTime) { // Control debug view if (input.IsNewButtonPress(Buttons.Start)) { EnableOrDisableFlag(DebugViewFlags.Shape); EnableOrDisableFlag(DebugViewFlags.DebugPanel); EnableOrDisableFlag(DebugViewFlags.PerformanceGraph); EnableOrDisableFlag(DebugViewFlags.Joint); EnableOrDisableFlag(DebugViewFlags.ContactPoints); EnableOrDisableFlag(DebugViewFlags.ContactNormals); EnableOrDisableFlag(DebugViewFlags.Controllers); } if (input.IsNewKeyPress(Keys.F1)) { EnableOrDisableFlag(DebugViewFlags.Shape); } if (input.IsNewKeyPress(Keys.F2)) { EnableOrDisableFlag(DebugViewFlags.DebugPanel); EnableOrDisableFlag(DebugViewFlags.PerformanceGraph); } if (input.IsNewKeyPress(Keys.F3)) { EnableOrDisableFlag(DebugViewFlags.Joint); } if (input.IsNewKeyPress(Keys.F4)) { EnableOrDisableFlag(DebugViewFlags.ContactPoints); EnableOrDisableFlag(DebugViewFlags.ContactNormals); } if (input.IsNewKeyPress(Keys.F5)) { EnableOrDisableFlag(DebugViewFlags.PolygonPoints); } if (input.IsNewKeyPress(Keys.F6)) { EnableOrDisableFlag(DebugViewFlags.Controllers); } if (input.IsNewKeyPress(Keys.F7)) { EnableOrDisableFlag(DebugViewFlags.CenterOfMass); } if (input.IsNewKeyPress(Keys.F8)) { EnableOrDisableFlag(DebugViewFlags.AABB); } if (input.IsNewButtonPress(Buttons.Back) || input.IsNewKeyPress(Keys.Escape)) { ExitScreen(); } if (HasCursor) { HandleCursor(input); } if (_userAgent != null) { HandleUserAgent(input); } if (EnableCameraControl) { HandleCamera(input, gameTime); } base.HandleInput(input, gameTime); }
private void HandleCursor(InputHelper input) { Vector2 position = Camera.ConvertScreenToWorld(input.Cursor); if ((input.IsNewButtonPress(Buttons.A) || input.IsNewMouseButtonPress(MouseButtons.LeftButton)) && _fixedMouseJoint == null) { Fixture savedFixture = World.TestPoint(position); if (savedFixture != null) { Body body = savedFixture.Body; _fixedMouseJoint = new FixedMouseJoint(body, position); _fixedMouseJoint.MaxForce = 1000.0f * body.Mass; World.AddJoint(_fixedMouseJoint); body.Awake = true; } } if ((input.IsNewButtonRelease(Buttons.A) || input.IsNewMouseButtonRelease(MouseButtons.LeftButton)) && _fixedMouseJoint != null) { World.RemoveJoint(_fixedMouseJoint); _fixedMouseJoint = null; } if (_fixedMouseJoint != null) { _fixedMouseJoint.WorldAnchorB = position; } }