Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.07;
Скачать: CL | DM;

Вниз

Помогите новичку (DelphiX)   Найти похожие ветки 

 
Pauchok   (2002-11-30 03:41) [0]

Хочу научится использовать DelphiX для создания игр,научился выводить изображение на экран,а вот с анимацией разобраться немогу посмотрел примеры (Golem)ничего не понял .Пожайлуста приведите простой пример с использованием 2 или 3 кадров.


 
3d[Power] ©   (2002-11-30 13:18) [1]

Есть спрайт, но разбитый на фреймы, в дельфиХе там свойства PatternWidth PatternHeight, Если картинка 256x256 то если указать pattern 128х128, то это будет значить что спрайт содержит 4 фрейма, которые размером 128х128. При вызове процедуры Draw, указать нужный pattern


 
Pauchok   (2002-11-30 16:24) [2]

(При вызове процедуры Draw, указать нужный pattern)
А как указать нужный pattern?


 
Pauchok   (2002-11-30 17:03) [3]

Как указать pattern я уже догадался,но не знаю что надо сделать, чтоб кадры менялись.Пожайлуста напишите простой пример, где анимированый персонаж (состоящий из 2-3 фремов) двигается по небольшой карте.


 
Mirovodin ©   (2002-11-30 17:50) [4]

Допустим в TDXImageList есть DIB каотрый состоит из 3-х изображений. Для вывода 1-го кдара используем :
DXImageList1.Items[0].Draw(..,..,..,0)
Для выводя 2-го
DXImageList1.Items[0].Draw(..,..,..,1)
и для 3-го:
DXImageList1.Items[0].Draw(..,..,..,2)

Если все это делать через промежутки времени, получим плавную смену кадров - анимацию.






 
Mirovodin ©   (2002-11-30 17:52) [5]

P.S. если ты не понял пример Golem, каждая строчка которого прокомментирована - может стоит Object Pascal снчала изучать ? Что такое классы, методы и т.д.


 
Pauchok   (2002-11-30 19:59) [6]

Благодаря вам сделал анимированого персонажа состоит из
4 кадров.Проверьте правильно ли я все сделал
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXDraw1.Surface.Fill(0);
Dximagelist1.Items[0].Draw(DXDraw1.Surface,20,20,0);
Dxdraw1.Flip;
sleep(200);
DXDraw1.Surface.Fill(0);
Dximagelist1.Items[0].Draw(DXDraw1.Surface,20,20,1);
Dxdraw1.Flip;
sleep(200);
DXDraw1.Surface.Fill(0);
Dximagelist1.Items[0].Draw(DXDraw1.Surface,20,20,2);
Dxdraw1.Flip;
sleep(200);
DXDraw1.Surface.Fill(0);
Dximagelist1.Items[0].Draw(DXDraw1.Surface,20,20,3);
Dxdraw1.Flip;
sleep(200);
end;
end.


Еще несколько вопросов
1)Как заставить моего персонажа перемещаться по экрану?
2)Как сделать фон? (Я имею ввиду не цвет,а изображение )
Что-то надо написать вместо DXDraw1.Surface.Fill(0) Да?;


 
Mirovodin ©   (2002-11-30 20:54) [7]

Конечно нет :)))

...
private
ACount:integer;
X,Y: integer;
...

...
ACount:=0;
...


procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXDraw1.Surface.Fill(0);
Dximagelist1.Items[0].Draw(DXDraw1.Surface,X,Y,ACount);
Dxdraw1.Flip;
inc(Acount);
if Acount>4 then Acount:=0;
end;

1) Изменять переменные X,Y;
2) Сначала заполнять Surface изображением, ожним или многими - это будет фон. А потом рисовать все остальное. Алгоритм художника называется. Спреведлив не только для 3D но и для 2D графики.


 
Pauchok   (2002-12-01 02:13) [8]

Теперь правильно?
var
Form1: TForm1;
ACount:integer=0;
X,Y: integer;
a:integer=3;
b:integer=0;
implementation

{$R *.DFM}

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXinput1.Update;
DXDraw1.Surface.Fill(0);
Dximagelist1.Items[0].Draw(DXDraw1.Surface,X,Y,ACount);
Dxdraw1.Flip;
inc(Acount);
if Acount>a then Acount:=b;
if isleft in DXinput1.States then
begin
a:=7;
b:=4;
x:=x-8;
end
else
if isRight in DXinput1.States then
begin
a:=3;
b:=0;
x:=x+8;
end;
if isUp in DXinput1.States then
begin
y:=y-8
end;
if isDown in DXinput1.States then
begin
y:=y+8;
end;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_control then
dxtimer1.Enabled:=true;
end;
end.

Как заполнить Surface изображением?


 
Mirovodin ©   (2002-12-01 12:28) [9]

Да правильно. По поводу заполнения см. ответ N2 от 30.11.02 20:54


 
Axis_of_Evil ©   (2002-12-02 09:27) [10]

Народ, а TImageSprite не пользовали, в данном случае может это


 
Daddy ©   (2002-12-03 10:14) [11]

http://www.daddy.h1.ru/index.shtml?dxarticles


 
Muxec   (2003-01-24 10:35) [12]

A esli ne ukazhesh patternWidth to chto?



Страницы: 1 вся ветка

Текущий архив: 2003.07.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-20222
SSMARRTT
2003-06-18 11:32
2003.07.07
Новый алгноритм сжатия аудио


9-19945
prokopyi
2002-12-24 09:34
2003.07.07
Текстура


14-20192
LOX
2003-06-18 18:15
2003.07.07
Дроби


8-20168
vladislav80
2003-03-21 23:11
2003.07.07
Подскажите, как сделать кнопку другого цвета ?..


4-20345
vic_vm
2003-05-06 23:01
2003.07.07
Определить количество пунктов в Popup menu