Вопрос

Я собираюсь написать простую анимацию в XPCE (Четыре очка головоломки точнее). Я абсолютно ничего не знаю о XPCE, поэтому я посмотрел учебник, но результаты разочаровывают. Может ли кто -нибудь указать мне на некоторые материалы на следующее:

  • Работа с "холстом"
  • анимация
  • таймеры

РЕДАКТИРОВАТЬ: Хорошо, вот более подробная проблема: я хочу нарисовать две коробки, подождать две секунды, скрыть коробки, а затем запустить таймер.

new(@box1, box(100,100)),
send(W, display, @box1),
new(@box2, box(100,100)),
send(W, display, @box2, point(200, 200)),

% wait two seconds here
% hide the boxes here

new(Msg1, and(message(B1, relative_move, point(5, 0)),
              message(B4, relative_move, point(0, 5)))),
send(W, attribute, attribute(timer, new(T, timer(0.1, Msg1)))),

send(T, start),

РЕДАКТИРОВАТЬ 2: Хорошо, вот еще один вопрос (я должен открыть новый вопрос?): Это код, который я использую:

get_file(0, 'glass.gif').
get_file(180, 'glass180.gif').

main(GA, GB, GC, GD) :- % e.g. main(0,0,180,0).
    new(B1, figure),
    get_file(GA, G1),
    send(B1, display, new(BM1, bitmap(G1))),
    send(BM1, transparent, @on),
    send(W, display, B1, point(0,0)),     

%analogically for the other three glasses

Я хотел бы установить новую растровую карту для B1. Анкет Как я могу это сделать? Изменив BM1 быть достаточным? Или, может быть, есть альтернативное решение? Я думал о том, чтобы нарисовать как вертикальные, так и обратные очки за экраном и обменять их, но я не уверен в деталях такого решения.

Edit2 ': решил это. Для потомков:

send(B1, clear),
send(B1, display, bitmap('glass_while_animating_1.gif')),
send(timer(0.1), delay),
send(B1, clear),
send(B1, display, bitmap('glass_while_animating_2.gif')),
% etc
Это было полезно?

Решение

Поможет ли этот PDF -файл для поиска?

ссылка текст

«Глава 5. Простая графика» рассказывает о картинке (т.е. холст).

На стр. 260 есть пример использования таймера для введения задержки, а на странице 266 показан использование таймера для мигающей графики.

На странице 40 есть упоминание об использовании «графического-> промывки», чтобы явно заставляя перерисовать прямо сейчас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top