private iAirplane getClosestAirplaneToMouse() { List <iAirplane> airplanes = this.map.getAirplanes(); if (airplanes.Count == 0) { return(null); } iAirplane closestAirplane = airplanes[0]; foreach (iAirplane airplane in airplanes) { if (Vector2.Distance(currentMouseState.Position.ToVector2(), airplane.getDrawPos()) < Vector2.Distance(currentMouseState.Position.ToVector2(), closestAirplane.getDrawPos())) { closestAirplane = airplane; } } if (Vector2.Distance(currentMouseState.Position.ToVector2(), closestAirplane.getDrawPos()) > 50) { return(null); } return(closestAirplane); }
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.White); base.Draw(gameTime); spriteBatch.Begin(); this.closestAirplaneToMouse = this.getClosestAirplaneToMouse(); if (closestAirplaneToMouse != null && Vector2.Distance(currentMouseState.Position.ToVector2(), closestAirplaneToMouse.getDrawPos()) < 50) { closestAirplaneToMouse.hover(true); Primitives2D.DrawLine(spriteBatch, currentMouseState.Position.ToVector2(), closestAirplaneToMouse.getDrawPos(), Color.Black); } map.Draw(spriteBatch); notificationsManager.Draw(spriteBatch); //FPS spriteBatch.DrawString(defaultFont, Math.Ceiling(frameCounter.CurrentFramesPerSecond).ToString(), Vector2.Zero, Color.Green); spriteBatch.End(); }