public static void DrawLine(Vector2 p1, Vector2 p2, Texture2D line, LogicGraph game, Color color, RoadDisplayMode mode = RoadDisplayMode.Direct) { Vector2 m1, m2; switch (mode) { case RoadDisplayMode.Direct: default: game.SpriteBatch.Draw(line, p1, new Rectangle(0, 2, (int)((p2 - p1).Length()), 4) , color, getAngle(p1, p2), Vector2.Zero, 1, SpriteEffects.None, 0); break; case RoadDisplayMode.DownTuring: m1 = new Vector2(p1.Y > p2.Y ? p2.X : p1.X, Math.Max(p1.Y, p2.Y)); game.SpriteBatch.Draw(line, p1, new Rectangle(0, 2, (int)((m1 - p1).Length()), 4) , color, getAngle(p1, m1), Vector2.Zero, 1, SpriteEffects.None, 0); game.SpriteBatch.Draw(line, p2, new Rectangle(0, 2, (int)((m1 - p2).Length()), 4) , color, getAngle(p2, m1), Vector2.Zero, 1, SpriteEffects.None, 0); break; case RoadDisplayMode.UpTurning: m1 = new Vector2(p1.Y < p2.Y ? p2.X : p1.X, Math.Min(p1.Y, p2.Y)); game.SpriteBatch.Draw(line, p1, new Rectangle(0, 2, (int)((m1 - p1).Length()), 4) , color, getAngle(p1, m1), Vector2.Zero, 1, SpriteEffects.None, 0); game.SpriteBatch.Draw(line, p2, new Rectangle(0, 2, (int)((m1 - p2).Length()), 4) , color, getAngle(p2, m1), Vector2.Zero, 1, SpriteEffects.None, 0); break; } }
public override void Update(GameTime gameTime) { if (mode == 2) { roadmode = (RoadDisplayMode)Math.Abs(Game.MouseHelper.CurrentState.WheelDelta / 100 % 5); } base.Update(gameTime); }