我正在尝试构建一个路径系统,其中涉及使用带有航点的路径。目前我正在尝试渲染到屏幕的路径。我正在取得一些成功。
但是,我有一个问题,在这些检查点之间我需要制作“线条”。逻辑如下。
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);
}
}
}
我遇到的问题是我无法让我的敌人走这条路。根据轮换,他们可能会走错路。例如,当它们向屏幕底部移动时,它们向右走得太远了,但是当它们返回时,它们在正确的单元格中,路径正在绘制的地方。如果有帮助的话,我可以使用地图和矩形进行绘图。