private void ProcessMovement(GameTime gameTime, Moveable moveable, KeyboardStateExtended keyboardState) { var normalizedMotion = Vector2.Zero; if (keyboardState.IsKeyDown(Keys.W)) { normalizedMotion += new Vector2(0, -1); } if (keyboardState.IsKeyDown(Keys.S)) { normalizedMotion += new Vector2(0, 1); } if (keyboardState.IsKeyDown(Keys.A)) { normalizedMotion += new Vector2(-1, 0); } if (keyboardState.IsKeyDown(Keys.D)) { normalizedMotion += new Vector2(1, 0); } moveable.Velocity = normalizedMotion * moveable.Speed * (float)gameTime.ElapsedGameTime.TotalSeconds; }
public void Update(WpfKeyboard keyboard, WpfMouse mouse) { PreviousKeyboardState = CurrentKeyboardState; CurrentKeyboardState = keyboard.GetState(); KeyboardStateExtended = new KeyboardStateExtended(CurrentKeyboardState, PreviousKeyboardState); PreviousMouseState = CurrentMouseState; CurrentMouseState = mouse.GetState(); MouseStateExtended = new MouseStateExtended(CurrentMouseState, PreviousMouseState); }
public override void Paint(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition) { if (keyboardState.IsControlDown()) { map.CollisionLayer.UpdateCell(false, cellPosition.Coordinates.X, cellPosition.Coordinates.Y); } else { map.CollisionLayer.UpdateCell(true, cellPosition.Coordinates.X, cellPosition.Coordinates.Y); } }
protected override void Update(GameTime gameTime) { base.Update(gameTime); if (!form.ContainsFocus) { return; } HandleViewportSizeChange(); MouseStateExtended mouseState = MouseExtended.GetState(); KeyboardStateExtended keyboardState = KeyboardExtended.GetState(); Point mousePosition = mouseState.Position; Vector2 worldPosition = camera.ScreenToWorld(mousePosition.ToVector2()); TileLayer.TilePositionDetail tilePositionDetail = myMap.GetTileAtPosition(worldPosition, ActiveLayer); CollisionLayer.CellPositionDetail cellPositionDetail = myMap.GetCellAtPosition(worldPosition); Tile tile = tilePositionDetail.Tile; if (mouseState.IsButtonDown(MouseButton.Right)) { camera.Move(mouseState.DeltaPosition.ToVector2() / camera.Zoom); } else if (mouseState.DeltaScrollWheelValue != 0) { camera.Zoom = MathHelper.Clamp(camera.Zoom - mouseState.DeltaScrollWheelValue * 0.001f, camera.MinimumZoom, camera.MaximumZoom); } if (ActivePaintingTool != null) { if (ActivePaintingTool.IsValidPosition(myMap, keyboardState, tilePositionDetail, cellPositionDetail)) { if (mouseState.IsButtonDown(MouseButton.Left)) { ActivePaintingTool.Paint(myMap, keyboardState, tilePositionDetail, cellPositionDetail); } else { ActivePaintingTool.Hover(myMap, keyboardState, tilePositionDetail, cellPositionDetail); } } } }
public void MovePaddlePlayer(KeyboardStateExtended keyState, int screenHeight) { if (keyState.IsKeyDown(Keys.Up)) { Position.Y -= Velocity; } else if (keyState.IsKeyDown(Keys.Down)) { Position.Y += Velocity; } if (BoundingRectangle.Top < 0) { Position.Y = BoundingRectangle.Height / 2f; } if (BoundingRectangle.Bottom > screenHeight) { Position.Y = screenHeight - BoundingRectangle.Height / 2f; } }
public override bool IsValidPosition(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition) { return(cellPosition.IsValidPosition); }
public override void Hover(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition) { }
public abstract void Paint(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition);
public abstract bool IsValidPosition(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition);
public void Update(WpfKeyboard keyboard) { PreviousKeyboardState = CurrentKeyboardState; CurrentKeyboardState = keyboard.GetState(); KeyboardStateExtended = new KeyboardStateExtended(CurrentKeyboardState, PreviousKeyboardState); }
public static void Update() { _currentKeyboardState = KeyboardExtended.GetState(); }
public override void Paint(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition) { tilePosition.Tile.TilesetIndex = BrushTile.TilesetIndex; tilePosition.Tile.TileIndex = BrushTile.TileIndex; }
public override void Hover(Map map, KeyboardStateExtended keyboardState, TileLayer.TilePositionDetail tilePosition, CollisionLayer.CellPositionDetail cellPosition) { map.AddImmediateTile(tilePosition.Coordinates.X, tilePosition.Coordinates.Y, BrushTile); }