Приложение для рисования для Android с использованием libGDX

Я новичок в среде libGdx, но уже пару месяцев разрабатываю приложения для Android. Проблема, с которой я столкнулся, заключается в том, что я не могу найти способ создать приложение, в котором я могу рисовать элементы, как пользователь делает с помощью жестов. Я много искал, но не смог найти обходной путь, чтобы сделать следующее с использованием libgdx framework.

В общем, каков мой план:

  1. Я проверю, перетаскивает ли пользователь «isdragging()», если да, я хочу использовать «алгоритм DDA» для создания строк в соответствии с входными данными, полученными от «dragstart()» из интерфейса «Gesturedetection», но я m не получая никаких данных от методов.

  2. на основе действий пользователя будет отображаться растровое изображение.

Любая помощь будет полезной.


person silverFoxA    schedule 21.08.2015    source источник
comment
Мне пришлось реализовать такую ​​​​же функцию для игры, которую я сделал 3 года назад. Для решения этой проблемы. я поместил все, от моего рабочего стола и основного проекта, до проекта Android, а затем для этой специальной функции чертежной доски я использовал собственный Android и переключился с игровой активности на рисование, а затем после рисования снова переключился на игровую деятельность. тогда было не так много сцены 2d, и я использовал 0.9.6, я думаю, что с недавней разработкой должно быть решение, если нет, то вы можете пойти на это длинное и глупое решение.   -  person Kumar Saurabh    schedule 24.08.2015
comment
Каковы ваши планы по внедрению ластика? просто чтобы использовать ластик, я сделал эту штуку с переключением андроида   -  person Kumar Saurabh    schedule 24.08.2015
comment
Не могли бы вы быть немного конкретными с точки зрения кода? Нет, я просто хочу иметь приложение для рисования и хранить эти рисунки.   -  person silverFoxA    schedule 29.08.2015


Ответы (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
        }
    }
);

затем вы можете просто запомнить позицию в массиве, например (массив кажется хорошим выбором), а в части рендеринг вы можете использовать ShapeRenderer или какой-либо другой инструмент для визуализации этих точки. Поскольку вы запомнили все точки, вы можете легко удалить их при использовании «резины».

С уважением, Михал

person m.antkowicz    schedule 25.08.2015
comment
Извините, я сделал одну ошибку - x и y - это дельта-позиция, с которой вы начали перетаскивание - вы можете запомнить в переменной начальную точку (есть метод dragStart - выглядит точно так же, как перетаскивание, но срабатывает один раз), а затем добавить в начальную точку массива + (x ,y) вместо od просто (x,y) - person m.antkowicz; 29.08.2015
comment
но это не сработает, так как следующее дает мне только черный экран и больше ничего - person silverFoxA; 30.08.2015