Главная страница
    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.47 MB
Время: 0.006 c
3-20007
Солер
2003-06-14 19:42
2003.07.07
Что за сообщение программы?


1-20079
Mad Admin
2003-06-24 11:32
2003.07.07
Использование скинов ХР


1-20114
Alexey
2003-06-24 12:41
2003.07.07
Проблема с OLE


1-20081
Smashich
2003-06-24 11:30
2003.07.07
Events And Word


4-20352
NewN
2003-05-06 12:54
2003.07.07
Координаты кнопок на Toolbar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский