Показать сообщение отдельно
Старый 23.04.2007, 23:20   #9
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: работа с клавиатурой. однократное нажатие клавиши

вот получилось зделать при использовании либы однократное нажатие
каму нада - катайте

const
UP_PRESSED = 2;
DOWN_PRESSED = 64;
LEFT_PRESSED = 4;
RIGHT_PRESSED = 32;
FIRE_PRESSED = 256;
GAME_A_PRESSED = 512;
GAME_B_PRESSED = 1024;
GAME_C_PRESSED = 2048;
GAME_D_PRESSED = 4096;

var
key: integer;
num:integer;// положение игрока
keys:array [0..10] of boolean;
iii:integer;
begin
game.init;
game.set_clip(0,0,128,12;
game.show;
repeat
key := game.get_key_states;//опрос клавиш для управления движением спрайта

if (game.get_bit(key, LEFT_PRESSED)<>0) and (keys[4]=false) then
begin
num:=num+1;

end;

if (game.get_bit(key, RIGHT_PRESSED)<>0) and (keys[6]=false) then
begin
num:=num-1;

end;

for iii:=0 to 10 do
begin
if key<>0 then keys[iii]:=true;
if key=0 then keys[iii]:=false;
end;
setColor(255,255,255); // очистка экрана
fillRect(0,0,getWidth, getHeight);
setColor(255,0,255);
drawText('player:'+integerToString(num), 10, 1);
game.refresh; // отображение всег
delay(30); // если хочешь чтобы по медленее махол крыльями то увеличивай

until false;
end.

ЗЫ: Спасибо Винту за идею!
ЗЫЗЫ: ждемс допатченую либу))).
(Offline)
 
Ответить с цитированием