gpt4 book ai didi

c# - 我需要什么来为这个游戏创建这个控件? (像管道)

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:09 25 4
gpt4 key购买 nike

这是我在这个部分(XNA 和游戏开发)的第一篇文章。我正在尝试获取下图所示的内容。如您所见,有一条高速公路,在高速公路内部,会有一些物体在移动(毫秒)。我想街头行为就像一条管道。当高速公路装载一个物体时,它会出现在起点处,它会穿过高速公路,直到它到达高速公路的另一个末端。

我的主要问题是,如何才能仅在高速公路内移动多个物体?

enter image description here

提前致谢。

最佳答案

你需要一个点列表和一个 Sprite 列表

class Path 
{
List<Vector2> Points;
float[] Lengths;
Vector2[] Directions;

void Build()
{
Lengths = new float[Points.Count-1];
Directions = new float[Points.Count-1];
for (int i=0; i<Points.Count-1;i++)
{
Directions[i] = Points[i+1] - Points[i];
Lengths[i] = Directions[i].Length();
Directions[i].Normalize();
}
}
}

class Sprite
{
Vector2 Position;
float StagePos;
int StageIndex;
Path Path;
float Speed;

void Update(float Seconds)
{
if (StageIndex!=Path.Points.Count-1)
{
StagePos += Speed * Seconds;
while (StagePos>Path.Lengths[StageIndex])
{
StagePos -= Path.Lengths[StageIndex];
StageIndex++;
if (StageIndex == Path.Points.Count-1)
{
Position = Path.Points[StageIndex];
return;
}
}
Position = Path.Points[StageIndex] + Directions[StageIndex] * StagePos;
}
}
}

关于c# - 我需要什么来为这个游戏创建这个控件? (像管道),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com