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

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

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

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

Сообщение SDRNR » 10 июл 2007, 20:47

Всем привет)
Возникла проблема :confused: . Нужно реализовать несложную анимацию графическими средствами C++ Builder 6. Читал про это в инете, но ничего не смог разобрать. Что-то про видимые и невидимые участки и прочее.
Понял, что всё не так сложно, но нужна помощь.
Буду признателен, если кто-нибудь приведёт простой пример (передвижение любого граф. объекта), на котором всё объяснит.

Аватара пользователя
WinMain
Сообщения: 912
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

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

Сообщение WinMain » 11 июл 2007, 08:43

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

Ответить