Как сделать анимацию с помощью колебания и clojure?

Я пытаюсь анимировать шахматную часть в плате. Сначала я создал java.util. Объект - таймер, который "scheduleAtFixedRate" TimerTask реализовал как функция прокси. Таким образом, я вел учет части для перемещения (движущаяся запись части) и когда это является соответствующим (когда пользовательское перемещение часть с помощью мыши), функция прокси TimerTask должна быть тестом, если запись не является нолем, и выполните перемещающую часть функцию. Перемещающая часть функция просто обновляет координаты X и Y части, согласно предварительно вычисленному вектору. Я поместил добавлять-часы на движущуюся запись части поэтому, когда она изменяется, она должна перекрасить плату (холст). Метод краски тестирует, если эта движущаяся запись части не является нолем для рисования его.

Проблема состоит в том, что анимация не появляется. Часть просто переходит к судьбе без перемещения между. Существует некоторая проблема со схемой анимации ou существует лучший способ сделать это?

7
задан Humberto Pinheiro 26 May 2010 в 13:51
поделиться

5 ответов

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

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

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

3
ответ дан 7 December 2019 в 12:15
поделиться

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

0
ответ дан 7 December 2019 в 12:15
поделиться

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

1
ответ дан 7 December 2019 в 12:15
поделиться

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

1
ответ дан 7 December 2019 в 12:15
поделиться

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

jdk1.6.0_20\demo\applets\Animator

0
ответ дан 7 December 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: