|
||||||||||||||||||
|
Часть 8. Прозрачность, битовый перенос со свойством прозрачности Давайте теперь рассмотрим важное средство в программировании игр: прозрачность. Битовый перенос со свойством прозрачностиБольшинство игр строят свои экранные кадры методом установки фона и затем добавлением поверх изображения графических символов нерегулярной формы. Обычно такая нерегулярная графика называется сприйтими. Как правило, спрайты двигаются по экрану и анимируются, хотя это вовсе не обязательно. Они могут быть просто статическими изображениями, нарисованными поверх фонового изображения. Спрайты обычно обладают комплексной нерегулярной границей и могут также иметь внутри себя отверстия в пределах области, определенной этой границей. Рисовать такое нерегулярное изображение вместе с рассчитанным на него кодом было бы утомительно и слишком медленно. Вместо этого мы создаем растровое изображение спрайта. Однако, растровое изображение - это всегда заполненный прямоугольный блок, а спрайты, как я уже говорил, редко заполняются полностью. DirectDraw имеет богатое обеспечение для других типов манипулирования с цветом, однако для этой демонстрационной программы (и, вероятно, для большей части кода, которую вы напишете) вполне подходит базовый тип манипулирования. ColorKey.dwColorSpaceLowValue := 0 ; if Image. SetColorKey ( DDCKEY_SRCBLT, ColorKey ) <> DD_OK then ColorKey является локальной переменной типа TDDColorKey.Вы должны не забывать освобождать поверхность Image, для чего следует добавить строку FormDestroy для того, чтобы освободить ее после освобождения основной поверхности. Листинг 21 Добавление комментария к фону. procedure TFormI. DrawSurfaces ; // перегрузить фоновое изображение // вывести некоторые дополнительные советы о клавишах управления курсором Text0ut( 0, 0, 'Try cursor keys with and without Shift.' ) ; ' Use combinations such as Left+Up for diagonal movement. ' ) ; 1-3 selects the torus to move, 0 selects all.' ) : Free ; Еще раз, заметьте использование try...Finally вокруг TDDCanvas для гарантии освобождения TDDCanvas. |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил