首页 > 解决方案 > 如何通过路径在 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 中执行自定义形状绘制的方法是什么?

标签: javaandroidgraphicslibgdxshapes

解决方案


您应该使用ShapeRenderer。它具有绘制直线、弧线、矩形等的方法。

文档在这里


推荐阅读