Class: TonPrimitive

幾何学図形の描画、エフェクト描画機能を提供します。
Ton.Gra とは異なり、テクスチャを使用せずに頂点計算によって図形を描画します。
TonPrimitive のメソッドを呼び出すと、実行中のSpriteBatchが一時中断され、描画モードが切り替わります(描画順序に注意)。

Methods

Basic Shapes

void DrawCircle(Vector2 center, float radius, Color color, int segments = 36)

円を描画します。

void DrawCircle(Vector2 center, float radiusX, float radiusY, Color color, int segments = 36)

楕円を描画します。

void DrawRectangle(Vector2 position, Vector2 size, Color color, float rotation = 0f, Vector2? origin = null)

矩形を描画します。回転も可能です。

void DrawTriangle(Vector2 p1, Vector2 p2, Vector2 p3, Color color)

三角形を描画します。

void DrawPolygon(List<Vector2> vertices, Color color)

凸多角形を描画します。頂点リストの順に結んで塗りつぶします。

void DrawArc(Vector2 center, float radius, float startAngle, float endAngle, float thickness, Color color, int segments = 24)

円弧(線)を描画します。

void DrawRoundedRectangle(Vector2 position, Vector2 size, float cornerRadius, Color color, float rotation = 0f, Vector2? origin = null)

角丸矩形を描画します。

Advanced Graphics

void DrawSpline(List<Vector2> points, float thickness, Color color)

複数の点を通る滑らかなスプライン曲線(Catmull-Rom)を描画します。

void DrawArrow(List<Vector2> points, float thickness, Color color, float headSize = 20f, Color? borderColor = null, float borderThickness = 2f)

矢印付きのスプライン曲線を描画します。

void DrawRibbon(List<Vector2> points, float startWidth, float endWidth, Color startColor, Color endColor)

太さと色が変化するリボン(軌跡)を描画します。

void DrawBolt(Vector2 start, Vector2 end, float thickness, Color color, float difficulty, float updatesPerSecond = 60f)

稲妻を描画します。形状はランダムに変化します。

void DrawFocusLines(Vector2 center, float outerRadius, float intensity, Color color, float updatesPerSecond = 0f)

集中線を描画します。

Utilities

void GetSplineInfo(List<Vector2> points, float t, out Vector2 position, out float radians)

スプライン曲線上の任意の位置と角度を取得します。パスに沿ってオブジェクトを動かす場合に便利です。

Sample Code

// 稲妻を描画 (秒間20回アニメーション)
Ton.Primitive.DrawBolt(
    new Vector2(100, 100), 
    new Vector2(500, 500), 
    5.0f, 
    Color.Yellow, 
    1.0f, 
    20f
);

// 集中線を描画
Ton.Primitive.DrawFocusLines(
    center, 
    1000f, 
    0.8f, 
    Color.White, 
    12f
);

// 角丸矩形の描画
Ton.Primitive.DrawRoundedRectangle(
    new Vector2(400, 300),
    new Vector2(200, 100),
    10f,
    Color.Blue
);