在XNA中绘制2D曲线

时间:2010-07-20 14:06:40

标签: c# xna

有没有办法生成一个Curve类,然后在XNA的屏幕上以2D绘制该曲线?

我想基本上使用曲线随机生成一些地形,然后绘制它。希望我可以使用该曲线来检测与地面的碰撞。

1 个答案:

答案 0 :(得分:4)

听起来你想要的是相当于高度图的2D。我会避免制作一个真正的“曲线”,只是用线段近似一个。

所以基本上你会有一个数组或数字列表,它们代表一系列均匀间隔(水平)点的地形高度。当你需要两点之间的高度时,你只需在两者之间进行线性插值。

要生成它 - 您可以随机设置几个点,然后进行某种形式的平滑插值来设置其余部分。 (这实际上取决于你想要的曲线类型。)

要渲染,您可以使用三角形条。高度贴图中的每个点都有两个与之关联的顶点 - 一个位于屏幕底部,另一个位于高度贴图中该点的高度。

进行碰撞检测 - 最简单的方法是让你的物体成为一个点(听起来就像你正在制作像火星地球这样的火炮游戏) - 只需要你的X位置物体,获取地形在该X位置的Y位置,如果物体的Y位置在地形下方,则将其设置为在地形表面上。

无论如何,那是粗略的指南:)