|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.04.2007, 02:02 | #1 |
Пользователь
Регистрация: 11.04.2007
Сообщений: 36
|
HELP!!! как обрабатать только 2 нажатия в 1 момент времени.
Столкнулся вот с такой проблемой - в игре есть 2 объекта и 2 обработчика событий KeyDown. Нажатие кнопок завязано не на самих объектах а обрабатываются самой формой. Проблема заключается в том,что по игре часто необходимо в 1 момен времени перемещать эти объекты а форма обрабатывает только 1 нажатие в 1 момент времени, в результате если 1-ый объект в движении то 2-ой парализован.
Что сможите посоветовать? Если 1 объект регулируетя клавишами символьной клавиатуры а 2-ой цифровой то проблема исчезет? |
15.04.2007, 06:56 | #2 |
Пользователь
Регистрация: 12.04.2007
Сообщений: 21
|
я бы посоветовал сделать так:
завести массив Keys : array[ 0..255 ] of Boolean; в OnKeyDown написать Keys[ Key ] := True; в OnKeyUp: Keys[ Key ] := False; в главном цикле (наверное он у тебя в OnTimer находится) написать: if Keys[ VK_NUMPAD8 ] then <двигаешь объект№1 вверх>; if Keys[ Byte('W') ] then <двигаешь объект№2 вверх>; итд. работает прекрасно
Пусть баги обходят вас стороной
|
15.04.2007, 13:29 | #3 |
Heavy metal
Пользователь
Регистрация: 02.04.2007
Сообщений: 42
|
Лучше используй GetAsyncKeyState в главном цикле.
|
15.04.2007, 23:23 | #4 |
Пользователь
Регистрация: 11.04.2007
Сообщений: 36
|
напиши пожалуйста поподробней об этой процедуре. как мне ее применить по отношению к движению 2-х объектов bitbtn
|
16.04.2007, 16:10 | #5 |
Heavy metal
Пользователь
Регистрация: 02.04.2007
Сообщений: 42
|
Ну что-то вроде этого: (написал на скорую руку, сам не проверял)
Код:
Последний раз редактировалось Voland; 16.04.2007 в 21:19. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Опредиление времени нажатия клавиши | Antonio86 | Общие вопросы Delphi | 1 | 29.04.2008 20:48 |
Пытаюсь выйти в инет с компа через мобилу, в момент соединения комп начинает виснуть | Sava | Свободное общение | 5 | 29.04.2008 18:02 |
начал учить только-только - нужна ваша помошь | vanDJ | Помощь студентам | 20 | 18.12.2007 21:53 |
Как определить момент запуска сторонней программы? | NioTo | Win Api | 2 | 17.12.2007 16:40 |
Как и в какой момент написать обработчик события если БД не доступна | Arteom | БД в Delphi | 8 | 04.10.2007 12:08 |