【问题标题】:Drawing app for android using libGDX使用 libGDX 为 android 绘制应用程序
【发布时间】:2015-08-21 10:14:00
【问题描述】:

我是 libGdx 框架的新手,但我已经开发 Android 应用程序几个月了。我面临的问题是我无法找到一种方法来制作一个应用程序,我可以在用户使用手势时绘制项目。 我进行了很多搜索,但找不到使用 libgdx 框架执行以下操作的解决方法。

基本上我的计划是:

  1. 我将检查用户是否正在拖动“isdragging()”,如果是,我想使用“DDA 算法”根据从“dragstart()”接收到的输入来创建行Gesturedetection”接口,但我没有收到来自方法的任何数据。

  2. 将根据用户的操作呈现像素图。

任何形式的帮助都会有所帮助。

【问题讨论】:

  • 我必须为我 3 年前制作的游戏实现相同的功能。来解决这个问题。我把我的桌面和主项目的所有东西都放到了 android 项目中,然后对于绘图板的那个特殊功能,我使用了原生 android 并从游戏活动切换到绘图活动,然后在绘图后切换回游戏活动。然后没有太多场景 2d,我使用的是 0.9.6,我认为随着最近的发展,应该有一个解决方案,如果没有,那么你可以选择这个冗长而愚蠢的解决方案。
  • 您对实施橡皮擦有什么计划?只是为了使用橡皮擦,我做了那个 android 切换的事情
  • 你能在代码方面具体一点吗?不,我只是想要一个绘图应用程序并存储这些绘图

标签: java android libgdx


【解决方案1】:

假设您使用的是 Scene2D,您可以轻松地使用与您的舞台绑定的 DragListener 来获取 (x,y) 指针位置,当用户触碰舞台并移动他的指针时

stage.addListener( 
    new DragListener()
    {
        public void drag(InputEvent event, float x, float y, int pointer)
        {
            Vector2 v = new Vector2(x, y);
            positionArray.add(v); //positionArray is Array<Vector2> type in this example
        }
    }
);

然后你可以只记住数组中的位置,例如(数组似乎是不错的选择),在 render 部分你可以使用 ShapeRenderer 或其他一些工具呈现这些点。因为您已经记住了所有要点,所以您可以在使用“橡胶”时轻松删除它们。

问候, 米哈乌

【讨论】:

  • 对不起,我犯了一个错误 - x 和 y 是您开始拖动的 delta od 位置 - 您可以记住可变起点(有方法 dragStart - 看起来与拖动完全相同,但触发一次)然后添加到数组起点 + (x,y) 而不是 od 只是 (x,y)
  • 但它不起作用,因为以下内容只给我一个黑屏,没有别的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
相关资源
最近更新 更多