【问题标题】:Drawing and storing a user's touch path in libgdx在 libgdx 中绘制和存储用户的触摸路径
【发布时间】: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.ShapeRenderercom.badlogic.gdx.Screen.render() 中绘制线条(或矩形)。据我所知,我需要存储当前触摸的每个触摸点,然后在渲染上绘制所有线条。每当用户松开手指时,我想我可以用com.badlogic.gdx.utils.ScreenUtils.getFrameBufferPixmap() 之类的东西按原样存储屏幕。希望有一种更简单的方法来实现我想要的。

【问题讨论】:

  • 在 HTML5 中,人们会使用具有适当复合模式的画布。也许 libgdx 也有类似的功能。
  • 我没有在 libgdx 中找到该功能,但是是的,在我的情况下它会很好用。

标签: android libgdx


【解决方案1】:

我最终在像素图上画了线条应该是的圆圈:

  • touchDown 一个圆圈
  • 从上一个接触点到下一个接触点的几个圆圈报告给 touchDragged

我对这个解决方案不是很满意,但它确实有效。

【讨论】:

    【解决方案2】:

    也许您可以手动计算线点坐标并使用三角形在像素图上绘制它们?喜欢用 2 个三角形组成(旋转的)盒子吗?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2014-08-06
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多