diff --git a/GameCli/Ship.cs b/GameCli/Ship.cs new file mode 100644 index 0000000..690574a --- /dev/null +++ b/GameCli/Ship.cs @@ -0,0 +1,18 @@ +namespace GameCli; + +/// +/// Immutable ship pose + velocity in world coordinates. +/// World is [0,1] × [0,1]. Y increases downward (screen-native). +/// Angle=0 means "ship pointing up" (main engine points down). +/// Positive angle rotates clockwise. +/// +public readonly record struct ShipState( + float X, + float Y, + float VX, + float VY, + float Angle, + float AngularVelocity) +{ + public static ShipState AtCenter() => new(0.5f, 0.5f, 0f, 0f, 0f, 0f); +}