Как сделать анимацию, используя качели и clojure? - PullRequest
7 голосов
/ 26 мая 2010

Я пытаюсь оживить шахматную фигуру на доске.Сначала я создал объект java.util.Timer, который «scheduleAtFixedRate» a TimerTask реализован как прокси-функция.Таким образом, я вел запись перемещаемого фрагмента (запись перемещения фрагмента), и, когда это уместно (когда пользователь перемещает фрагмент с помощью мыши), прокси-функция TimerTask должна проверяться, если запись не равна нулю, и выполнять фрагментдвижущаяся функция.Функция перемещения фигуры просто обновляет координаты x и y фигуры в соответствии с предварительно вычисленным вектором.Я помещаю надстройку в пошаговую запись, поэтому, когда она меняется, она должна перекрашивать доску (холст).Метод рисования проверяет, не является ли эта фигура, движущаяся по частям, нулевой, чтобы нарисовать ее.

Проблема в том, что анимация не появляется.Кусок просто прыгает в судьбу, без движения между ними.Есть какая-то проблема со схемой анимации или есть лучший способ сделать это?

Ответы [ 5 ]

3 голосов
/ 27 мая 2010

Обновления компонентов Swing должны выполняться в потоке диспетчеризации событий (EDT). Поэтому вам следует использовать Swing Timer, поскольку любой код, выполняемый при срабатывании Timer, будет выполняться на EDT.

Все, что вам нужно сделать, это установить местоположение шахматной фигуры, и она автоматически перекрасится.

Прочтите раздел из учебника по Swing на Как использовать таймеры для получения дополнительной информации.

1 голос
/ 26 мая 2010

вы можете использовать библиотеку Trident: Здесь

1 голос
/ 26 мая 2010

Swing не выполняет анимацию автоматически, не имеет значения, есть ли у вас таймер или нет. Если вы хотите оживить движение, вам нужно перемещать фигуру на некоторое расстояние за раз и перекрашивать полотно с каждым движением, чтобы оно создавало иллюзию, так сказать, движения.

0 голосов
/ 27 мая 2010

Другая идея может заключаться в том, чтобы взглянуть на платформу визуализации Processing с processing.org. Это простой, но мощный и хорошо документированный язык программирования для анимации и визуализации. API очень прост и имеет очень прозрачную оболочку Clojure с именем Rosado .

0 голосов
/ 26 мая 2010

В JDK есть демонстрация Animator. Он использует AWT, но он должен дать вам некоторые идеи.

jdk1.6.0_20 \ демо \ апплеты \ Аниматор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...