public override void Draw(IDrawContext drawContext, DrawingLayer drawingLayer) { var finalFrom = drawingLayer.CameraMode == CameraMode.Fix ? this.FromVector : this.FromVector .Scale(drawContext.Camera.ZoomFactor) .Translate(drawContext.Camera.GetSceneTranslationVector(drawingLayer.ParallaxScrollingVector)); var finalTo = drawingLayer.CameraMode == CameraMode.Fix ? this.ToVector : this.ToVector .Scale(drawContext.Camera.ZoomFactor) .Translate(drawContext.Camera.GetSceneTranslationVector(drawingLayer.ParallaxScrollingVector)); var zoom = drawingLayer.CameraMode == CameraMode.Fix ? 1.0f : this.Width * drawContext.Camera.ZoomFactor; //var finalWidth = this.width * camera.ZoomFactor; //var angle = (float)Math.Atan2(finalTo.Y - finalFrom.Y, finalTo.X - finalFrom.X); //var length = Vector.Distance(finalFrom, finalTo); var param = new DrawLineParams { VectorFrom = finalFrom, VectorTo = finalTo, Width = zoom, Color = this.Color }; drawContext.DrawLine(param); //spriteBatch.Draw(this.blank, finalFrom, null, this.color, angle, Vector.Zero, // new Vector(length, finalWidth), SpriteEffects.None, 0); }
protected void DrawLine(IDrawContext drawContext, DrawingLayer drawingLayer, Vector fromVector, Vector toVector, int width, Color color) { var finalFrom = fromVector .Scale(drawContext.Camera.ZoomFactor) .Translate(drawContext.Camera.GetSceneTranslationVector(drawingLayer.ParallaxScrollingVector)); var finalTo = toVector .Scale(drawContext.Camera.ZoomFactor) .Translate(drawContext.Camera.GetSceneTranslationVector(drawingLayer.ParallaxScrollingVector)); var param = new DrawLineParams { VectorFrom = finalFrom, VectorTo = finalTo, Width = width * drawContext.Camera.ZoomFactor, Color = color }; drawContext.DrawLine(param); }