Простая анимация в C++ Builder

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
SDRNR
Сообщения: 1
Зарегистрирован: 07 фев 2007, 14:16

10 июл 2007, 21:47

Всем привет)
Возникла проблема :confused: . Нужно реализовать несложную анимацию графическими средствами C++ Builder 6. Читал про это в инете, но ничего не смог разобрать. Что-то про видимые и невидимые участки и прочее.
Понял, что всё не так сложно, но нужна помощь.
Буду признателен, если кто-нибудь приведёт простой пример (передвижение любого граф. объекта), на котором всё объяснит.
Аватара пользователя
WinMain
Сообщения: 913
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

11 июл 2007, 09:43

Разными способами можно это сделать. Если сценарий анимации не зависит от действий пользователя, то можно создать файл AVI в каком-нибудь редакторе и воспроизводить его при помощи стандартного компонента TAnimation.
Если движение объекта должно быть управляемым, то сначала отрисовка заднего фона и графического объекта производится в оперативной памяти, в т.н. совместимом контексте устройства, а уже потом переносится на экран. И так при каждом перемещении объекта.
Чтобы рисунок не прямоугольной формы рисовался на фоне другой картинки, то его рисуют через трафарет. Т.е. фактически рисуется две картинки (не считая заднего фона): на первой картинке сам рисунок на чёрном фоне, а на другой картинке его чёрный силуэт на белом фоне. Это и будет являться трафаретом. Сначала рисуется трафарет с помощью растровой операции AND, а затем сам рисунок при помощи растровой операции OR. Для этого можно использовать графическую функцию BitBlt()
Если рисунок небольшой по размеру, в пределах 32х32 пикселя, то можно использовать иконку, в которой визуально задаются как видимые, так и невидимые области. Она рисуется с помощью функции DrawIcon()
Ответить