我目前正在使用 C# 和 XNA 制作高尔夫球游戏。到目前为止,我已经能够让球飞行、弹跳和滚动,同时显示位置和速度。现在我希望能够看到球的路径(类似于下图),以便检查整个球的运动。
http://www.golf-simulators.com/images/ms4.jpg
我的代码以固定的时间间隔更新球的位置。我正在考虑:1)使用这些位置,2)将它们插入到 VertexPositionColor[] 的数组中,3)并使用 GraphicsDevice.DrawUserPrimitives() 方法绘制它们
但到目前为止我还没有运气, VertexPositionColor 是静态数组,而位置数据量一直在增加。
我正在考虑使用 List,但 GraphicsDevice.DrawUserPrimitives() 方法拒绝将其作为输入
protected override void Draw(GameTime gameTime)
{
trail_vertice = new VertexPositionColor;
trail_vertice.Position = Position;
trail_vertice.Color = Color.Black;
trail_amount += 1;
trailList.Add(trail_vertice);
basicEffect.CurrentTechnique.Passes[0].Apply();
graphics.GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.LineStrip, trailList, 0, trail_amount);
}
我不需要像使用粒子引擎这样的高级效果。只需一行就足够了。有什么建议吗?