Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2018, 21:12   #1
Roman_Jarckov23
Пользователь
 
Регистрация: 11.09.2018
Сообщений: 20
Вопрос Как сделать обработку сразу 2 клавиш?

Я делаю игру, мне нужно сделать обработку сразу 2-х клавиш, например:
нажимаешь стрелки влево и вверх он двигается в левый верхний угол. Как это можно сделать?
Roman_Jarckov23 вне форума Ответить с цитированием
Старый 21.09.2018, 21:16   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А одной как?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2018, 21:20   #3
Roman_Jarckov23
Пользователь
 
Регистрация: 11.09.2018
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А одной как?
Процедурой KeyDown:
Код:
 procedure KeyDown(key:integer);
   begin
   case key of 
   VK_Up: //Действия если нажата стрелка вверх
   VK_Down: //Действия если нажата стрелка вниз
   VK_Left:  //Действия если нажата стрелка влево
   VK_Right:  //Действия если нажата стрелка вправо
   end;
Roman_Jarckov23 вне форума Ответить с цитированием
Старый 21.09.2018, 21:21   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

А паскаль какой?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 21.09.2018, 21:21   #5
Roman_Jarckov23
Пользователь
 
Регистрация: 11.09.2018
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
А паскаль какой?
PASCALABC.NET
Roman_Jarckov23 вне форума Ответить с цитированием
Старый 21.09.2018, 21:30   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А как вы нажмете одновременно влево и вверх? Все равно ж какая-то раньше нажмется, а потом вторая.

Ну а если зажать надолго, то наверно тоже как-нибудь по-очереди будут обе попадать в KeyDown.

Так что тут больше зависит от реализации самого движения.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2018, 22:09   #7
Roman_Jarckov23
Пользователь
 
Регистрация: 11.09.2018
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А как вы нажмете одновременно влево и вверх? Все равно ж какая-то раньше нажмется, а потом вторая.

Ну а если зажать надолго, то наверно тоже как-нибудь по-очереди будут обе попадать в KeyDown.

Так что тут больше зависит от реализации самого движения.
У меня всё через case, там только 1!
Roman_Jarckov23 вне форума Ответить с цитированием
Старый 17.10.2018, 11:40   #8
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Через массив нажатых клавиш и IF а не CASE.

Цитата:
Const
kbUp = 72;
kbLeft = 75;
kbDown = 77;
kbRight = 78;

...
var
KeyDown[127] of boolean;
...
If KeyDown[kbUp] Then begin ... End;
If KeyDown[kbDown] Then begin ... End;
If KeyDown[kbLeft] Then begin ... End;
If KeyDown[kbRight] Then begin ... End;
...
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать обработку части двухмерного массива(паскаль) Андрей77777 Паскаль, Turbo Pascal, PascalABC.NET 2 25.11.2012 02:21
Скажи как сделать и получи сразу деньги на телефон X-treme Фриланс 5 12.07.2012 19:20
Как сделать, чтобы программа работала сразу через 20 сайтов? tima777 Работа с сетью в Delphi 4 13.08.2011 20:48
Как сделать сразу 2 такие автозамены: Mangost Microsoft Office Word 2 22.12.2010 08:41
Как сделать привязку глобальных горячих клавиш к свой проге? Jinxers Помощь студентам 1 08.02.2009 00:29