java - 如何通过路径在 LibGDX 中绘制自定义形状?
问题描述
考虑我必须创建一个由一些元素组成的自定义/复杂形状,包括线条、矩形和/或曲线(贝塞尔曲线、立方曲线......)。在标准 Java 中,我们有 Path2D 元素,它允许我们通过预定义的点来执行其中一些元素。path
以下方法演示了一种通过某些点返回 a 的简单方法:
private Path2D aShape(double x, double y) {
ArrayList<double[]> points = new ArrayList<>(
Arrays.asList(
new double[]{x, y},
new double[]{x - (L * 0.2588190451), y - (L * 0.4482877361)},
new double[]{x, y - (L * 0.7071067812)},
new double[]{x + (L * 0.2588190451), y - (L * 0.4482877361)}));
Path2D path = new Path2D.Double();
path.moveTo(points.get(0)[0], points.get(0)[1]);
for (int i = 1; i < points.size(); ++i) {
//line or anything avaliable...
path.lineTo(points.get(i)[0], points.get(i)[1]);
}
path.closePath();
return path;
}
之后,这个方法就可以画出来了Graphics2D
。但是,我在 LibGDX 库中没有(至少)找到任何以这种方式工作的元素,甚至没有找到提供绘制曲线或类似功能的元素,如 Path2D。
对于我的测试,我试图按照路径绘制音乐高音谱号,但没有找到这样做的技巧。
通过传递的路径在 LibGDX 中执行自定义形状绘制的方法是什么?
解决方案
您应该使用ShapeRenderer。它具有绘制直线、弧线、矩形等的方法。
推荐阅读
- python - 气流:无法通过指定的 url 打开管理 UI
- ruby-on-rails - rails将孩子添加到用户帐户
- azure-eventhub - 从 MassTransit BehaviorContext 向 EventHub Rider 发布消息
- twincat - 需要优化代码(减小大小)CODESYS ST (TwinCat 2) 以节省内存
- flutter - 带有自定义声音和导航的徽标以欢迎页面颤动
- regex - Emacs 搜索带有下划线的单词不被视为单词边界
- geocoding - 如何在搜索时获取地点的“真实”类别
- git - 无法在 IntelliJ 中运行 Git
- css - CSS 中是否有不同类型的字体系列?
- javascript - PhpStorm 抱怨向数组添加键值