|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.03.2009, 17:51 | #1 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Одновременное нажатие клавиш.
Я начал делать игру на Delphi 7 и столкнулся с проблемой. Мне нужно организовать движение предмета с координатами X и Y по экрану.
Я назначил на событие OnKeyPress следующее: Код:
|
20.03.2009, 17:59 | #2 |
Пользователь
Регистрация: 27.01.2009
Сообщений: 97
|
Профессионалы на этом форуме советуют делать так:
создаешь функцию Код:
Код:
sx - это его скорость. Т.е., если скорость со знаком "-", то обьект движется в противоположную сторону |
20.03.2009, 18:04 | #3 |
Пользователь
Регистрация: 27.01.2009
Сообщений: 97
|
Естественно, нужно в глобальных переменных добавить px,sx - если движение только по горизонтали. В архиве пример простой программы с коментами, составленной на основе примеров, которые изложены умными людьми этого форума. Там также пример создания уровня с проходимостью и коллизией
|
20.03.2009, 18:11 | #4 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Работает! А как узнать коды всех клавиш клавиатуры для этой функции?
|
20.03.2009, 18:30 | #5 |
Пользователь
Регистрация: 27.01.2009
Сообщений: 97
|
38 - вверх, 40 - вниз, 27 - Esc, 13 - Enter
Остальные пока сам не знаю, не интересовался |
20.03.2009, 18:35 | #6 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Код:
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|
20.03.2009, 18:44 | #7 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Существует еще куча способов, например:
Код:
Код:
Код:
Последний раз редактировалось Kostia; 20.03.2009 в 18:47. |
20.03.2009, 18:50 | #8 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Я правильно понял, что в примере таймер нужен для постоянного выполнения кода (с интервалом в 1 мс), а в паскале для этого можно было использовать Repeat - until?
|
20.03.2009, 19:21 | #9 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
да, но в паскале для того чтобы определить одновременно нажатые клавиши нужно воспользоваться сторонней библиотекой или самому на asm.
Я использовал библиотеку UKEYB. Она является альтернативой CRT для управления клавиатурой в программах, требующих более плавного управления клавишами, в первую очередь - играх. |
21.03.2009, 23:21 | #10 | |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Цитата:
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
одновременное нажатие нескольких кнопок | DANIЯR | Общие вопросы Delphi | 8 | 27.11.2008 21:47 |
Нажатие клавиш | bashkos | JavaScript, Ajax | 6 | 23.09.2008 19:01 |
Операторы ветвлений (нажатие клавиш) | barahlysh | Общие вопросы C/C++ | 6 | 12.12.2007 12:19 |
Нажатие клавиш | VanDerKeen | Win Api | 1 | 03.06.2007 21:13 |