Страница 1 из 1

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

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

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

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