| Михаил |
9.11.2004 22:10
Сообщение
#1
|
|
Гость |
Пишу игру в граф. режиме. Нужно чтобы происходили определенные действия при нажатии на опред. кнопку, но чтобы не было этого ожидания. Комбинация
repeat {постоянно выполняемый код} untill (keypressed) and (readkey=#27) глючит. Походу идет переполнение буфера. Без keypressed он сначала ждет нажатия клавиши а потом делает действия. Вставки на ассемблере тоже не спосают P.S нужно чтобы программа была без О.О.П. Кто сталкивался помогите! |
![]() ![]() |
| xds |
10.11.2004 1:05
Сообщение
#2
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Попробуй обрабатывать буфер одним проходом:
Код program Code; uses Crt; var Done: Boolean; begin Done := False; repeat { сделать что-нибудь полезное... } while KeyPressed do case ReadKey of ' ': { обработать нажатие клавиши "пробел" }; #27: Done := True; #0: { обработка расширенных кодов BIOS } case ReadKey of #72: { обработать нажатие клавиши "вверх" }; #75: { обработать нажатие клавиши "влево" }; #77: { обработать нажатие клавиши "вправо" }; #80: { обработать нажатие клавиши "вниз" }; end; end until Done; end. P.S. Если необходимо отслеживать удержание нескольких клавиш одновременно (e. g., все время нажата "вверх" и эпизодически нажимается и отпускается "control"), то придется написать свой обработчик int 9. -------------------- The idiots are winning.
|
Михаил Помогите советом 9.11.2004 22:10
volvo Скэн-коды перехватывать не пробовал? 9.11.2004 22:20
Altair Нет, здесь ИМХО надо как сказал volvo - скэн коды.... 10.11.2004 7:18
P@sh@ процедурка ReadKeyExt...
если скан-код равен 0, зн... 15.11.2004 19:20
GoodWind {From: Valery Votintsev 2:5021/22}
{Alt, S... 15.11.2004 20:12![]() ![]() |
|
Текстовая версия | 6.02.2026 2:54 |