2024-01-24 12:17:21 +03:00
|
|
|
using Microsoft.Xna.Framework;
|
|
|
|
|
|
|
|
using Apos.Shapes;
|
|
|
|
|
|
|
|
using Syntriax.Engine.Physics2D.Primitives;
|
|
|
|
|
|
|
|
namespace Pong.Behaviours;
|
|
|
|
|
2024-01-24 19:25:31 +03:00
|
|
|
public class ShapeBehaviour : Syntriax.Engine.Physics2D.Collider2DShapeBehaviour, IDisplayableShape
|
2024-01-24 12:17:21 +03:00
|
|
|
{
|
2024-01-24 19:25:31 +03:00
|
|
|
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; }
|
2024-01-24 12:17:21 +03:00
|
|
|
|
|
|
|
public Color Color { get; set; } = Color.White;
|
|
|
|
public float Thickness { get; set; } = .5f;
|
|
|
|
|
|
|
|
public void Draw(ShapeBatch shapeBatch)
|
|
|
|
{
|
2024-01-24 19:25:31 +03:00
|
|
|
int count = ShapeWorld.Vertices.Count;
|
2024-01-24 12:17:21 +03:00
|
|
|
|
2024-01-24 19:25:31 +03:00
|
|
|
shapeBatch.BorderCircle(Transform.Position.ToDisplayVector2(), 5f, Color.DarkRed);
|
2024-01-24 12:17:21 +03:00
|
|
|
|
2024-01-24 19:25:31 +03:00
|
|
|
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);
|
2024-01-24 12:17:21 +03:00
|
|
|
}
|
|
|
|
}
|