Форум: "Потрепаться";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Внизнажатие нескольких клавиш... Найти похожие ветки
← →
Dunkan (2003-02-26 11:19) [0]подскажите, как нажать в игре две клавиши сразу(т.е у одного игрока и у другого).
очень надо... зарание пасибо...
← →
han_malign (2003-02-26 11:30) [1]OnKeyDown
- если не в курсе: клавиатура генерит два события - одно на нажатие клавиши, другое на отпускание (причем Shif,Ctrl,Alt ничем не отличаются от других клавиш, просто по событию нажатия взодится флаг удержания кнопки, по событию отпускания, соотвественно, сбрасывается). Так-же (не помню контроллером клавы или системой) событие нажатия автоматически повторяется через определенный промежуток времени...
З.Ы. В OnKeyDown нельзя становиться в ожидание(этим ты заблокируешь очередь сообщений), нужно установить флаг дла конкретной кнопки и сбросить его в OnKeyUp, и реагировать не на соответсвующую клавишу, а на суперпозицию флагов удержания кнопки...
З.З.Ы. Что-то я сегодня добрый...
← →
Dunkan (2003-02-26 11:36) [2]а не сложно примером...новичек я
← →
Dunkan (2003-02-26 12:08) [3]так кто знает???
← →
Ru (2003-02-26 12:10) [4]//вводим флаги
FPMoveUp,//первый игрок двигается вперед
SPMoveUp,//второй игрок двигается вперед
...:boolean;//я же не знаю какие у тебя еще события
procedure Form1.OnKeyPress(...);
begin
case key of
119: SPMoveUp:=true;//по нажатию w второй игрок должен двигаться вперед
... //
end;
end;
procedure Form1.OnKeyUp(...);
begin
case key of
119: SPMoveUp:=false;//да остановите кто-нибудь этого козла
... //
end;
end;
procedure Timer1.OnTimer(...);
begin
if SPMoveUp then begin
//второй игрок еще движется
end else begin
//остановились
end;
...//ну и для остальных
end;
Примерно так. естьственно процедуры должны быть правильные
← →
Dunkan (2003-02-26 14:06) [5]пасиба...
← →
Dunkan (2003-02-26 17:42) [6]у кого есть ещё варианты???
← →
Ketmar (2003-02-26 19:13) [7]>Dunkan © (26.02.03 17:42)
сударь, а не пошли бы вы в сад? вам уже ответили. шагом марш делать.
Satanas Nobiscum! 26-Feb-XXXVIII A.S.
← →
oomneeq (2003-02-27 00:35) [8]unit windows
function GetKeyState(nVirtKey: Integer): SHORT; stdcall;
function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c