如何在MonoGame / XNA中绘制虚线

8

在MonoGame / XNA 4中,最简单的绘制虚线的方法是什么?

我应该使用3D基元还是可以通过简单的精灵实现它?

3个回答

5
用户 C3 在 Bitbucket 上发布了一个很好的实用类来创建 2D 图形。这些方法会添加到 SpriteBatch 类中。其仓库在此处:https://bitbucket.org/C3/2d-xna-primitives/wiki/Home

欢迎

欢迎来到使用 Bitbucket 上的 Mercurial 代码库的 2D XNA Primitives 项目的新家!现在支持 Windows Phone。

函数参考

此库提供的所有公共方法都是扩展方法,这意味着您可以直接通过自己的 SpriteBatch 实例访问它们,就像这些方法是内置于 SpriteBatch 类一样。如果您以这种方式调用方法,则可以忽略下面所有调用的第一个参数。

公共方法

DrawArc

DrawCircle

DrawLine

DrawRectangle

FillRectangle

PutPixel


1
如果是一条直线(带有简单的90度转弯),那么精灵可能是最容易的选择。
(如果您可以通过HiDef配置文件访问自定义着色器,则通过着色器实现虚线并不太困难,只要保持需求简单即可)
如果它以不规则的方式扭曲和转弯,那么我建议使用3D基元。

谢谢!我不确定如何使用精灵绘制虚线。 有没有一种方法可以剪切绘制的精灵(有一条长线并相应地剪切它)? 还是我必须绘制多个精灵(每个段一个)并重复它们(似乎不太优化?) - adrin
我想到的两个选项是使用全白色的精灵并重复绘制它们,或者在纹理中使用一个或多个空格并将其缩放,并将纹理设置为环绕。 - lzcd

0
将问题分为两个部分。
1)如果曲线不是直线,则定义曲线的形状。
2)沿着该曲线,创建一个带有所需点线纹理的三角形带。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接