有没有办法生成一个 Curve 类,然后在 XNA 的屏幕上以二维方式绘制该曲线?
我基本上想使用曲线随机生成一些地形,然后绘制它。希望我可以使用该曲线来检测与地面的碰撞。
最佳答案
听起来您想要的是高度图的 2D 等价物。我会避免制作真正的“曲线”,而只是用线段来近似。
基本上,您将拥有一个数组或数字列表,这些数字表示地形在一系列均匀分布(水平)的点处的高度。当您需要两点之间的高度时,您只需在两点之间进行线性插值即可。
要生成它 - 您可以随机设置几个点,然后进行某种形式的平滑插值来设置其余点。 (这真的取决于你想要什么样的曲线。)
要渲染它,您可以只使用三角形带。高度图中的每个点都会有两个顶点与之关联 - 一个位于屏幕底部,另一个位于高度图中该点的高度。
要进行碰撞检测 - 最简单的方法是让你的对象成为一个点(听起来你正在制作像 Scorched Earth 这样的火炮游戏) - 只需将你的对象的 X 位置对象,在该 X 位置获取地形的 Y 位置,如果对象的 Y 位置低于地形,则将其设置为在地形表面上。
无论如何,这是粗略的指南:)
关于c# - 在 XNA 中绘制二维曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290784/