Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Движение в игре???

Автор: Kolan 12.11.2003 1:55

У меня есть игра. Там два шарика друг в друга стреляют. А движение играков я в бесконечном цикле считываю readkey и получается , что нажать и держать клавишу оба игрока не могут тогда другой не может играть??? Как исправить? ???

Автор: zx1024 12.11.2003 20:03

if keypressed then readkey;

Автор: Kolan 19.11.2003 0:18

У меня так и сделано ???

Автор: AlaRic 21.11.2003 22:59

to Kolan: сырец случайно не скинешь? Посетителям было бы проще ответить, а может и подскажут что получше!

Автор: Nemo 23.11.2003 1:38

Вариант типа If KeyPressed then Readkey - фигня. Не буду вдаваться в подробности, но скажу, что нужно записать адрес концаа буфера клавиатуры в адрес начала, магическая строка:  
              MemW[0:$41a]:=MemW[0:$41c];

Автор: Kuzmitin 29.12.2003 20:41

Люди, качайте модуль ля реализации проверки нажатия клавиш.
Работает офигительно быстро, иногда надо вставлять delay...
Использование: суешь в цикл процедуру key;
и пишешь if keys[код опроса нужной клавиши ($XX)] then    ;

Код
UNIT KeyBoard;
INTERFACE
Var
  Keys:array[1..128] of boolean;
Procedure Key;
IMPLEMENTATION
Uses Crt;
 Procedure Key;
 var
    a:byte;
    ch:char;
 begin
   a:=port[$60];
   if a>128 then keys[a-128]:=false
   else keys[a]:=true;
   while keypressed do ch:=readkey;
 end;
END.

PEACE всем!!!!!!!!!!!!!!!! ;

Автор: AlaRic 30.12.2003 20:59

Спасибо уже взяли  ;)