|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.01.2009, 10:16 | #1 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Однопоточность и многопоточность приложения
Люди добрые, помогите срочно плз!
У меня игра на двоих игроков, и, следовательно, 2 управления с клавиатуры.Когда я нажимаю клавишу идти для 1-го игрока и он движется, то нажатая клавиша идти для 2-го игрока не работает! Или то, или другое! Как сделать такую многопоточность приложения ? Очень срочно надо, плз помогите! Заранее благодарю. |
14.01.2009, 11:17 | #2 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
Во-первых если вы сделали управление на стрелках, то убирайте его и делайте например одно на буквах WASD, а второе на доп. клавиатуре 8456.
Дальше все просто. Заводите массив keys:array[0..255]of boolean; И в обработчике нажатия и отпускания клавиш пишите: Код:
if keys[27] then form1.Close; |
14.01.2009, 11:25 | #3 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
14.01.2009, 11:56 | #4 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
Ну для начала нужно включить шутер и настроить кнопки стрелок для управления и нажать вверх и влево и попытаться прыгнуть или присесть.
Вам этого не удастся, т.к. при таком условии больше никакой кнопки нельзя нажать. А при wasd и 8456 я смог одновременно нажать по 3 кнопки с каждой связки(WAD и 456 например) _________ >никакой кнопки нельзя нажать. Ага, вру, можно WASD, но пробел и некоторые другие нельзя. Последний раз редактировалось Kostia; 14.01.2009 в 12:05. |
14.01.2009, 15:30 | #5 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
А у меня на ноуте нет "8456" секции, и что делать? ...думаю, не имеет значения, какие клавиши пользовать, главное - алгоритм опроса клавиатуры. Как частный случай, это Form.KeyDown и Form.KeyUp использование флажков Boolean, плюс общая процедура на выполнения обновления игрового пространства через проверку флажков.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
14.01.2009, 23:43 | #6 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Попробую с FormKeyDown и FormKeyUp, а вот сделать с тем, что у меня происходит глюк при нажатии на стрелку влево(или) и сразу же нажатия на стрелку вправо, то есть шарик у меня размножается .=) Особенно меня
интересует, что скажет Kostia, т.к. половину кода я взял из его игр. Вот, скидываю 1 вариант игры, помогите плз как можно быстрее. Для игры есть описание, Esc-выход из игры. Сегодня! |
15.01.2009, 17:05 | #7 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Pyton, пропиши условие, если оба флажка кнопок вправо и влево True, то стоять на месте.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
15.01.2009, 17:14 | #8 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
nitro в моих играх не было, так что это вы сами, а про раздвоение нужно что-то типа этого сделать:
Код:
if getkeystate(key)shr 31=1 then ... или Код:
Последний раз редактировалось Kostia; 15.01.2009 в 17:19. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
многопоточность в Delphi | xakkkkker | Свободное общение | 12 | 13.08.2010 18:52 |
Многопоточность Indy | AVer | Работа с сетью в Delphi | 14 | 14.02.2009 22:10 |
Многопоточность при отправке почты | sanchopansa | Работа с сетью в Delphi | 4 | 04.10.2008 14:57 |
многопоточность в сетевых приложениях | AlexandrY | Работа с сетью в Delphi | 9 | 13.07.2008 02:43 |
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. | SkyM@n | Фриланс | 3 | 29.12.2007 16:21 |