using Microsoft.Xna.Framework; using Apos.Shapes; using Syntriax.Engine.Physics2D.Primitives; namespace Pong.Behaviours; public class ShapeBehaviour : Syntriax.Engine.Physics2D.Collider2DShapeBehaviour, IDisplayableShape { public ShapeBehaviour(Shape Shape) { this.ShapeLocal = Shape; } public ShapeBehaviour(Shape Shape, float Thickness) { this.ShapeLocal = Shape; this.Thickness = Thickness; } public ShapeBehaviour(Shape Shape, Color color) { this.ShapeLocal = Shape; Color = color; } public ShapeBehaviour(Shape Shape, Color color, float Thickness) { this.ShapeLocal = Shape; this.Thickness = Thickness; Color = color; } public Color Color { get; set; } = Color.White; public float Thickness { get; set; } = .5f; public void Draw(ShapeBatch shapeBatch) { int count = ShapeWorld.Vertices.Count; shapeBatch.BorderCircle(Transform.Position.ToDisplayVector2(), 5f, Color.DarkRed); for (int i = 0; i < count - 1; i++) shapeBatch.DrawLine(ShapeWorld[i].ToDisplayVector2(), ShapeWorld[i + 1].ToDisplayVector2(), Thickness, Color, Color); shapeBatch.DrawLine(ShapeWorld[0].ToDisplayVector2(), ShapeWorld[^1].ToDisplayVector2(), Thickness, Color, Color); } }