Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

Я пишу игру, типа мортала комбата.При управлении скажем китайца в   Найти похожие ветки 

 
JUS   (2004-07-13 21:15) [0]

Я пишу игру, типа мортала комбата.
При управлении скажем китайца в сторону(лево/право неважно) я использую код:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var I:integer;
begin
IF Key="1" Then Begin
For I:=1 to 500 do
Image2.Picture.LoadFromFile(".\Китаец с палкой\Шаг 1.Bmp");
Image2.Left:=Image2.Left+5; Image2.Refresh;
For I:=1 to 500 do
Image2.Picture.LoadFromFile(".\Китаец с палкой\Шаг 2.Bmp");
Image2.Left:=Image2.Left+5; Image2.Refresh;
For I:=1 to 500 do
Image2.Picture.LoadFromFile(".\Китаец с палкой\Шаг 3.Bmp");
Image2.Left:=Image2.Left+5; Image2.Refresh;
For I:=1 to 500 do
Image2.Picture.LoadFromFile(".\Китаец с палкой\Шаг 4.Bmp");
Image2.Left:=Image2.Left+5; Image2.Refresh;
end;

end;


получается что при нажатой кнопке "1" он делает четыре своих шага, потом останавливается на секунду, потом уже идёт нормально пока не отпущу кнопку.

1. Как сделать чтобы он двигался нормально, без остановки, т.е. нажал - пошёл, отпустил - остановился?

2. А ещё как запрограмировать стрелки(курсоры на клаве"chr(?)")?

Первый вопрос меня больше интерисует. Помогите пожалуйста


 
Огромное Кулясищще ©   (2004-07-13 21:38) [1]

Пржде всего надо сказать, что ты всё делаешь неправильно и из-за этого у тебя уже начались трудности.

>For I:=1 to 500 do
Image2.Picture.LoadFromFile(".\Китаец с палкой\Шаг 1.Bmp");


Это ужасно. Тебе нужно ОДИН раз вывести картинку и подождать какое-то время, а вместо этого ты 500 раз ЗАГРУЖАЕШЬ и выводишь картинку, при этом на разных компах пауза будет разная (влоть до того, что через несколько лет на Pentium VI пауза исчезнет).

>1. Как сделать чтобы он двигался нормально, без остановки, т.е. нажал - пошёл, отпустил - остановился?

Никак при таком подходе. Разве что, через таймер, но это будет ещё ужаснее. Вывод графики итак должен быть в таймере или в другом цикле, тогда бы задача решилась замечательно.

>2. А ещё как запрограмировать стрелки(курсоры на клаве"chr(?)")?

Нужно обрабатывать OnMouseDown.


 
Proger   (2004-07-13 22:55) [2]

Нужно обрабатывать OnMouseDown.
 OnKeyDown


 
ПсихЪ_копия   (2004-07-13 23:31) [3]


> JUS   (13.07.04 21:15)  

Очень советую тебе почитать статьи по программирования игровых циклов. В сети их полно. Если натолкнёшься на статьи для других языков - всё равно читай, теория она для всех языков одинакова.
Основные источники:
http://dev.dtf.ru
http://gamedev.ru
http://delphigfx.mastak.ru

Удачи!
ГЫ: А то, что ты сейчас показал - ЭТО ПОЛНЫЙ УЖАС!!! Без обид.


 
Огромное Кулясищще ©   (2004-07-13 23:49) [4]

2 Proger:

Безусловно :)


 
КиТаЯц ©   (2004-07-14 07:26) [5]

Ну вот... Чуть что, сразу китайцы с палками... :)


 
ПсихЪ_просто   (2004-07-14 09:09) [6]


> КиТаЯц ©   (14.07.04 07:26) [5]

Это типа Лью Кэн. Хм... Кен... (:


 
КиТаЯц ©   (2004-07-14 09:38) [7]

2 ПсихЪ_просто   (14.07.04 09:09) [6]
Не смешно >:-|


 
ПсихЪ_просто   (2004-07-14 09:52) [8]


> КиТаЯц ©   (14.07.04 09:38) [7]

Да ладно тебе, не расстраивайся. Вас вон сколько много. Ведёте себе "тихую" экспансию на запад. Так что вы в любом случае выиграете. И будут на земле только одни катайцы!!! (:


 
JUS   (2004-07-15 20:11) [9]

Со всеми я согласен, спасибо за критику,она настовляет на путь истинный! исправлюсь со временем!:)
   Но каким образом в onMouseDown обрабатывать кнопки для управления этим китайцем, неполучается? приведите пример, если можно!
   И ещё как можно сделать управление, чтобы одна кнопка не блокировала другую при нажатии, ведь игра будет для двоих игроков!?
   Да, и как делать паузу между шагами SLEEP-ом, я прав?


 
Ландграф Павел ©   (2004-07-15 20:21) [10]

неслушай тов. извращенца... я лично узнаю коды кнопок по таблице=) шучу... в режиме отладки можешь узнать любой код, просто смотри на значение переменной кей после нажатие требуемой кнопки...


 
DeadMeat ©   (2004-07-15 20:44) [11]


> [9] JUS   (15.07.04 20:11)
> Но каким образом в onMouseDown обрабатывать кнопки для управления этим китайцем, неполучается?

Этого я лично не понял... Но если ты имеешь ввиду то, что сказало Огромное Кулясищще, то оно ведь просто ошиблось... Очепяткалось так сказать... :))

---
...Death Is Only The Begining...


 
Ertong ©   (2004-07-15 20:56) [12]


> И ещё как можно сделать управление, чтобы одна кнопка не
> блокировала другую при нажатии, ведь игра будет для двоих
> игроков!?

Если пишешь используя DirectX, тогда используй DirectInput.


 
JUS   (2004-07-16 18:31) [13]

Нет Ertong © я и DirectX пользоватся пока ещё не умею, а без него никак разве нельзя чтобы одна кнопка не блокировала другую при нажатии?!(


 
Колбасьев ©   (2004-07-16 19:26) [14]

Тебе с ассемблером тогда "дружить" надо. Покрайней мере, на нем можно было процедурки в ДОСе написать, и было бы, что клавиши не "блокируют" друг друга.


 
JUS   (2004-07-17 20:26) [15]

Ну типа ладно, я нефига не понял, пример бы кто скинул хоть чего нибуть разобрал, ато все поверхностно объяняют, кто знает тот бы наверное понял, а мне надо массу литературы покупать и читать которой у нас в городе нету! Всё есть, а литературы по програмированию к сажелению нету, никто не занимается етим;(((


 
JUS   (2004-07-17 20:29) [16]

... но некоторые советы и замечания я усвоил! Спасибо за это!


 
MANGOL   (2004-07-17 20:44) [17]

Повесил бы отрисовку на поток, или хотя бы на таймер!
если уж китаец с палкой, можно и так сделать. а по-хорошему, я думаю, на поток вешать надыть и время узнавать усё время, шобы знать када следусчий кадр отрисовывать. Вот.

а чё книжек нету - не страшно. в интырнете можа найти шо угодно и в каком угодно количестве. В том числе те же книжки. Краснова например видел (енто который про directx) на 2х сайтах (не лень сканить было, блин... железные люди!)


 
JUS   (2004-07-19 06:53) [18]

Да я так и понял, всё равно благодарю за совет!
Я вот купил диск вчера "Разработка ПО: создание игр" Там есть всякая ерунда, но купил т.к. там был "DelphiX 2000.07.17" но у меня стоит Delphi7 и DelphiX не хочит инсталироватся, востикает очень много ошибок. Инсталировал через Delphi: файл,открыть... , да и по другому, бесполезно, может надо строки с ошибками и подредактировать? Но их очень много!
     Может эта версия неподходит к Делфи7?
     С DelphiX неразу не сталкивался!, а вообще так это нужная вешь?!


 
ПсихЪ_умиротворённый   (2004-07-19 09:20) [19]


> JUS   (19.07.04 06:53) [18]

На http://gamedev.ru есть статья по исправлению дистрибутива DelphiX.
Лучши начинай API изучать. Оболочки все - отстой!



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

Форум: "Игры";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.067 c
1-1098807684
Kotyara
2004-10-26 20:21
2004.11.14
Ошибка в QReport при больших отчетах.


3-1098039899
S@shka
2004-10-17 23:04
2004.11.14
100% загрузка проца


1-1099393717
Pentium133
2004-11-02 14:08
2004.11.14
Не вызывается Change! Что делать?


14-1098977679
Silla
2004-10-28 19:34
2004.11.14
Visual C++ 6&7 Forum


1-1098893884
333and
2004-10-27 20:18
2004.11.14
Аналог функции на С++ в Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский