АКЦИЯ от www.R3.ru - хостинг сайтов 72р. в месяц. Домен в подарок!

Delphi.dax.ru    
Сайт
Новости
О сайте
Форум
Уроки
DelphiX
Спрайты
Анимация
3D max
  DelphiX -> Урок 3. Анимация

Предыдущий урок |Следующий урок

В этом уроке я научу Вас делать персонажей анимированными.
Для облегчения урока воспользуемся "Уроком 1. Спрайты". Возьмём из него весь исходный код.
1. Но прежде чем приступать к написанию программы расскажу как делается анимация.
Для анимацию нужно: 1 файл графического формата, которые должен иметь следующий вид:


Принцип построения анимации прост: анимация (изображение) должна состоять из 2 и более кадров одинаковой ширины и высоты.

2. Теперь создаём анимированного персонажа. Я нарисовал своего



Выможете скачать его (Правая кнопка мыши на изображение -> Сохранить как...) или сделать своего
Теперь надо загрузить нашего персонажа в DXImageList1
В Properties DXImageList1 ищем свойство Items и открываем его (жмём квадратик с 3-я точками)
За тем выбираем Add New (Ins). Появился новый Item с названием 0 - TPictureCollectionItem
Ему нужно задать имя (Name). Давайте будет Colobok.
Далее выбираем свойство Picture (жмём квадратик с 3-я точками) и загружаем наше изображение.
Далее нужно обязательно в Properties Colobok'а своству PatternHeight (Высота кадра) и задать PatternWight (Ширина кадра) значение 50.
Поему 50? Потому, что ширина и высота кадра моего колобка 50px.

3. Теперь собственно код анимации в OnCreate нашей формы.
 AnimCount:=image.PatternCount; // Количество кадров
 AnimLooped:=True; // Повторное воспроизведение = true
 AnimSpeed:=5/1000; // Скорость анимации

Т.е. Выглядит это так:
 procedure TForm1.FormCreate(Sender: TObject);
 begin
  with TColobok.Create(DXSpriteEngine1.Engine) do // Связываем последующий код с TColobok
  begin
   image:=form1.DXImageList1.Items.Find('Colobok'); // Выборка изображения для спрайта спрайта
   x:=40; // X координата TColobok
   y:=40; // Y координата TColobok
   width:=image.Width; // Ширина равна ширине спрайта
   height:=image.Height; // Высота равна высоте спрайта
   AnimCount:=image.PatternCount; // Количество кадров
   AnimLooped:=True; // Повторное воспроизведение = true
   AnimSpeed:=5/1000; // Скорость анимации
  end;
 end;
Тут всё понятно, объяснять не стоит.

Ну в общем всё! Компилируем проект и смотрим!

Скачать исходный код урока 3

Предыдущий урок |Следующий урок
Delphi.dax.ru © 2009 Delphi.dax.ru