public override void Update(GameTime GameTime) { base.Update(GameTime); if (Keyboard.GetState().IsKeyDown(Keys.Right) || Keyboard.GetState().IsKeyDown(Keys.D)) { if (Position.X + Sprite.Width <= GlobalResources.ScreenWidth) { Rectangle FuturePosition = new Rectangle((int)Position.X + 5, (int)Position.Y, Sprite.Width, Sprite.Height); if (Game1.CanMove(FuturePosition, Bounds)) { Position = new Vector2(Position.X + 5, Position.Y); } } } /*else*/ if (Keyboard.GetState().IsKeyDown(Keys.Left) || Keyboard.GetState().IsKeyDown(Keys.A)) { if (Position.X >= 0) { Rectangle FuturePosition = new Rectangle((int)Position.X - 5, (int)Position.Y, Sprite.Width, Sprite.Height); if (Game1.CanMove(FuturePosition, Bounds)) { Position = new Vector2(Position.X - 5, Position.Y); } } } if (Keyboard.GetState().IsKeyDown(Keys.Up) || Keyboard.GetState().IsKeyDown(Keys.W)) { if (Position.Y >= 0) { Rectangle FuturePosition = new Rectangle((int)Position.X, (int)Position.Y - 5, Sprite.Width, Sprite.Height); if (Game1.CanMove(FuturePosition, Bounds)) { Position = new Vector2(Position.X, Position.Y - 5); } } } if (Keyboard.GetState().IsKeyDown(Keys.Down) || Keyboard.GetState().IsKeyDown(Keys.S)) { if (Position.Y + Sprite.Height <= GlobalResources.ScreenHeight) { Rectangle FuturePosition = new Rectangle((int)Position.X, (int)Position.Y + 5, Sprite.Width, Sprite.Height); if (Game1.CanMove(FuturePosition, Bounds)) { Position = new Vector2(Position.X, Position.Y + 5); } } } //Vector2 DirectionVector = DestinationVector - OriginVector; //Vector2 DirectionVectorNormalized = Vector2.Normalize(DirectionVector); //this.Position += DirectionVectorNormalized ; }