ウェイポイント付きのパスを使用するパスシステムを構築しようとしています。現在、画面へのパスをレンダリングしようとしています。私はある程度の成功を収めています。
しかし、私には問題があります。これらのチェックポイントの間に「線」を作成する必要があります。ロジックは以下のとおりです。
for (int i = 0; i < paths.Count; i++)
{
for (int j = 0; j < paths[i].wayPoints.Count; j++)
{
if ((j + 1) < paths[i].wayPoints.Count)
{
Vector2 point1 = paths[i].wayPoints[j];
Vector2 point2 = paths[i].wayPoints[j + 1];
Vector2 origin = new Vector2();
float angle = (float)Math.Atan2(point2.Y - point1.Y, point2.X - point1.X);
float length = Vector2.Distance(point1, point2);
//batch.Draw(tileTexture, new Rectangle((int)point1.X, (int)point1.Y, cellSize, cellSize), Color.White);
batch.Draw(tileTexture, new Vector2((int)point1.X, (int)point1.Y), null, Color.White,
angle, origin, new Vector2(length/40, 1),
SpriteEffects.None, 0);
}
}
}
私が抱えている問題は、敵をこの道に従わせることができないということです。回転によっては、パスの反対側に移動する可能性があります。たとえば、画面の下部に向かって移動するときは1 cll右に移動しすぎますが、上に戻るときは、パスが描画されている右側のセルにあります。私はこれを地図で操作し、長方形を使用して描画しました。