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

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

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

В этом уроке я расскажу Вам как создавать своих персонажей (еще не анимированных), иными словами спрайты.
И так, начнём...

1. Создаём новый проект (File -> New -> Application), находим закладку DelphiX с ниже изображенными компонентами и размещаем их на форме

TDXDraw
TDXImageList
TDXInput
TDXSpriteEngine
TDXTimer.

2. Находим в Unit1 в type строку:
 TForm1 = class(TForm)
И заменяем её на:
 TForm1 = class(TDXForm)

В Properties DXImageList1 в свойство DXDraw пишем DXDraw1
В Properties DXSpriteEngine1 в свойство DXDraw пишем DXDraw1
В Properties DXTimer1 изменяем свойство ActiveOnly (по умолчанию true) на false и Interval (по умолчанию 1000) на 1

3. Далее создаём процедуру OnTimer (DXTimer1 -> Events -> OnTimer) и пишем в него такой код:
 procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
 begin
  if not DxDraw1.CanDraw then exit; // Если нет DirectX выходим
  DXInput1.Update; // Обновление
  DXSpriteEngine1.Move(LagCount); // перемещает спрайт
  DXSpriteEngine1.Dead; // Уничтожает...
  DXDraw1.Surface.Fill(0); // Отражает изменения (спрайты и т.д.)
  DXSpriteEngine1.Draw; // Рисует...
  DXDraw1.Flip; // Посылает содержимое Surface экрану
 end;
Думаю объянять не стоит, скажу только, что отвечает за прорисовку всех спрайтов

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



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

Теперь необходимо создать класс нашего персонажа. После слова implementation и {$R *.dfm} пишем:
 type
  // Класс нашего колобка...
  TColobok = class (TImageSprite)
  end;
Таким образом описываются классы.
TColobok - имя (название) класса.
Почему TImageSprite? Потому, что мы имеет дело с обычной картинкой.

5. И теперь осталось самое главное - отобразить на форме нашего колобка.
Создаём процедуру OnCreate (Form1 -> Events -> OnCreate) и пешем код:
 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; // Высота равна высоте спрайта
  end;
 end;
Тут всё понятно, объяснять не стоит.

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

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

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