Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции программирование.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
1.01 Mб
Скачать

Использование сторонней библиотеки ukeyb

Для плавного управления клавиатурой при создании игры недостаточно средств модуля CRT или использования событий клавиатуры. Можно использовать стороннюю библиотеку UKEYB. Она несовместима с CRT, поэтому при её подключении CRT нужно исключить из списка модулей, и все подпрограммы из CRT заменить аналогами из UKEYB.

UKEYB содержит такие функции для работы с клавиатурой:

Функция ispressed(key:integer):boolean; проверяет, нажата ли клавиша, заданная параметром.

Функция is_any_key:boolean; проверяет, нажата ли хоть какая-нибудь клавиша.

Функция arrow_dir:byte; проверяет, куда нажаты клавиши-стрелки. (0-не нажаты, 1-8 - от вертикали по часовой стрелке)

При вызове ispressed удобно вместо кода клавиши использовать перечисленные ниже константы:

F1_key=112; F2_key=113; F3_key=114;

F4_key=115; F5_key=116; F6_key=117;

F7_key=118; F8_key=119; F9_key=120;

F10_key=121; F11_key=122; F12_key=123;

pgup_key=33; pgdn_key=34; caps_key=20;

Lctrl_key=162; Rctrl_key=163;

Lalt_key=164; Ralt_key=165;

Lshift_key=160; Rshift_key=161;

esc_key=27; tab_key=9;

space_key=32; enter_key=13;

up_key=38; down_key=40;

left_key=37; right_key=39;

ins_key=45;del_key=46; home_key=36;

end_key=35;

A_key=65; B_key=66; C_key=67; D_key=68; E_key=69; F_key=70; G_key=71;

H_key=72; I_key=73; J_key=74; K_key=75; L_key=76; M_key=77; N_key=78;

O_key=79; P_key=80; Q_key=81; R_key=82; S_key=83; T_key=84; U_key=85;

V_key=86; W_key=87; X_key=88; Y_key=89; Z_key=90;

Библиотека UKEYB содержит также средства для работы с мышью:

Функция mousebutton возвращает 0, если кнопки мыши не нажаты, 1 – левая, 2 – правая кнопки мыши и 4 – нажато колёсико.

Функция SetMouseCursorOff убирает курсор мыши из окна, а SetMouseCursorOn восстанавливает его.

Функции MouseX и MouseY дают координаты левой верхней точки курсора.

В

program krugok;

uses graphabc,ukeyb;

begin

randomize;

setmousecursoroff;

lockdrawing;

setbrushcolor(clred);

repeat

clearwindow(clblack);

circle(mousex,mousey,20);

redraw;

if mousebutton=1 then

begin

setbrushcolor(random(clwhite));

sleep(50);

end;

until is_any_key;

end.

качестве примера рассмотрим программу, которая перемещает кружок по движению мыши, а нажатие левой кнопки мыши меняет цвет кружка:

1 Однако, работы в этом направлении (искусственный интеллект) ведутся.