c# - 在 XNA 中绘制二维曲线

标签 c# xna

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

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

最佳答案

听起来您想要的是高度图的 2D 等价物。我会避免制作真正的“曲线”,而只是用线段来近似。

基本上,您将拥有一个数组或数字列表,这些数字表示地形在一系列均匀分布(水平)的点处的高度。当您需要两点之间的高度时,您只需在两点之间进行线性插值即可。

要生成它 - 您可以随机设置几个点,然后进行某种形式的平滑插值来设置其余点。 (这真的取决于你想要什么样的曲线。)

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

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

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

关于c# - 在 XNA 中绘制二维曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290784/

相关文章:

c# - 除了 System.Type 之外没有任何更多信息的 Cast 对象

c# - 解决条件依赖 autofac

c# - 用颜色填充裁剪区域

c# - 在 WPF .NET Framework 中使用自定义任务管理器时,如何防止进程重复?

c# - 在集成测试之间重置内存数据库

c# - Box2d:最大可能的线速度?

c# - 快速亚像素激光点检测

c# - 如何从 XNA 游戏项目启动和调试控制台线应用程序

.net - 绘制立方体时出现 OutOfMemory 异常

c# - 在运行测试类清理时,由于出现以下错误 : 80040154.,为具有 CLSID {} 的组件检索 COM 类工厂失败