![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
![]() |
|
|
DelphiX: Загрузка и вывод спрайтов13.07.2012 12:14
Борисов Сергей
Итак, научимся загружать и выводить спрайты на экран. Спрайты, проще говоря, это обычные картинки. Например, анимация идущего человека состоит из нескольких кадров, вот каждый кадр это и есть спрайт. Приступим. Для начала выложим на форму все необходимые компоненты: TDXTimer, TDXImageList иTDXDraw. Названия компонентов изменять не будем. TDXTimer - это таймер. Нужен он для того, чтобы экран обновлялся. TDXImageList это коллекция загруженных спрайтов. А на TDXDraw будет вся выводимая графика отображаться. Создайте событие onInitialize у DXDraw1: procedure TForm1.DXDraw1Initialize(Sender: TObject); Теперь создайте событие onFinalize у того же компонента: procedure TForm1.DXDraw1Finalize(Sender: TObject); Теперь необходимо связать между собой DXImageList1 и DXDraw1. Для этого у DXImageList1 свойствоDXDraw устанавливаем в DXDraw1. Дальше реализуем процедуры загрузки спрайтов и их вывода на экран. Procedure TForm1.LoadSprite(Var DXList: TDXImageList; Name: String; Разберемся со входными параметрами процедуры. DXList - указание в какой TDXImageList будет загружаться спрайт. Name - путь к файлу. TransparentIMG - будет ли использоваться прозрачный спрайт. Если да то весь полностью зеленый цвет не будет виден. Далее реализуем загрузку части картинки. Зачем это нужно? Например, существует анимация, но все кадры расположены в одном файле. Каждый следующий кадр правее предыдущего. Т.к. все кадры одного размера, то их можно загрузить в цикле. Это намного удобнее. Procedure TForm1.LoadSpritePos(Var DXList : TDXImageList; Name : String; С загрузкой разобрались, теперь реализуем процедуру вывода: Procedure TForm1.PutImage(DXList : TDXImageList; X, Y, X2, Y2, Index : Integer); Index - номер выводимого спрайта в DXImageList1. Теперь во время инициализации нужно загрузить спрайты. В процедуре DXDraw1Initialize вместо ремарки "тут будут загружаться спрайты" вставим: LoadSprite(DXImageList1, Так как файлов не существует, то будет происходить ошибка. Разместите эти файлы [288 кб] в папке Images. Загрузили. Осталось только вывести. Создайте событие onTimer у DXTimer1: procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer); Переменные Xm и Ym нужно объявить глобальными. И создать событие onMouseMove у DXDraw1. Там пишем: Xm:=X; Осталось только настроить разрешение. У компонента DXDraw1 измените свойство Display как вам нужно. Вот и все. Все остальное дело Вашей фантазии. Скачать исходник [295 кб]
Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |