【问题标题】:Drawing shapes by pixel in libgdx在 libgdx 中按像素绘制形状
【发布时间】:2016-05-03 22:07:09
【问题描述】:

我正在尝试在 libgdx 中绘制不断变化的形状,所以我认为使用精灵不会起作用,我想知道是否可以使用为每个像素调用的函数来绘制形状以确定是否它应该被绘制。

我需要画的是垫圈的一部分(由两个同心圆和两个半径限定的区域),圆和半径不断变化。

我想知道的是,这里是否有一种方法来绘制由函数确定的复杂形状(形状将由 (x,y) 组成,而 theFunction(x,y)=true)而不是图像

【问题讨论】:

    标签: libgdx drawing


    【解决方案1】:

    一切皆有可能。最佳解决方案实际上取决于您要创建的内容的详细信息。也许你可以举一个例子来说明你的意思?

    没有看到示例,看起来您可能想从 ShapeRenderer 开始。有关如何使用它的详细信息,请参阅the javadocs。这应该让你开始,如果你发现它在某些方面不够,那么你至少有一个更多的specific question

    顺便说一句,使用@Ludevik 建议的像素图也是可能的,但由于您希望它不断变化,这意味着每帧都上传整个图像,这不是很好。

    【讨论】:

    • 谢谢!我会尝试使用 ShapeRenderer。我已经看到它包含一个绘制多边形的函数。你知道这个函数是画一个实心多边形还是只画轮廓?
    • Afaik 多边形不能是实心的,相反,您可以对它们进行三角剖分并绘制三角形。例如。使用libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/…
    【解决方案2】:

    使用Pixmap 有帮助吗?

    您可以创建像素图:

    Pixmap pixmap = new Pixmap(300, 300, Pixmap.Format.RGBA8888);
    

    然后在该像素图上绘制具有特定颜色的像素:

    pixmap.drawPixel(x, y, color);
    

    然后您可以从该像素图创建纹理并绘制纹理。不过,我不确定这种解决方案的性能。

    另请参阅 libgdx wiki 中的 Pixmaps

    【讨论】:

    • 谢谢!我想我会尝试一下,看看它的性能如何
    猜你喜欢
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多