【发布时间】:2014-02-13 22:23:10
【问题描述】:
我正在努力解决我希望使用 libgdx 直截了当的事情。
简而言之,这是一个“手指绘画”应用程序,我想在其中绘制用户触摸屏幕的特定宽度的路径。
我之前使用普通的 Android android.view.View 完成了此操作。我有一个android.graphics.Path,其中存储了用户当前触摸的坐标。在视图的onDraw() 方法中,我绘制了android.graphics.Canvas 的路径。每当用户松开手指时,我都会绘制到离线画布/android.graphics.Bitmap 的路径,该路径也是在onDraw() 方法中绘制的。简单明了。
如何使用 libgdx 做到这一点?
我尝试过使用com.badlogic.gdx.graphics.Pixmap,只要用户移动手指,我就可以画一条线。这很好用,除了我无法使用Gdx.gl.glLineWidth() 控制线路的宽度。我知道我可以绘制一个矩形而不是一条线来设置宽度,但 Pixmap 似乎没有任何旋转方式,所以我不知道如何做到这一点。
我可以使用com.badlogic.gdx.graphics.glutils.ShapeRenderer 在com.badlogic.gdx.Screen.render() 中绘制线条(或矩形)。据我所知,我需要存储当前触摸的每个触摸点,然后在渲染上绘制所有线条。每当用户松开手指时,我想我可以用com.badlogic.gdx.utils.ScreenUtils.getFrameBufferPixmap() 之类的东西按原样存储屏幕。希望有一种更简单的方法来实现我想要的。
【问题讨论】:
-
在 HTML5 中,人们会使用具有适当复合模式的画布。也许 libgdx 也有类似的功能。
-
我没有在 libgdx 中找到该功能,但是是的,在我的情况下它会很好用。