![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#321
|
|
![]() Immortal Сообщений: 754 Спасибо сказали: 379 раз ![]() |
![]() ![]() ![]() -------------------- 28 января 1996 г. — 9 октября 2013 г.
Grand Elf всегда останется с нами. Вечная память. [Администрация Форума] |
|
|
![]()
Сообщение
#322
|
|
![]() aka Nariel Сообщений: 307 Спасибо сказали: 346 раз ![]() |
жеская сегодня была игра...
![]() -------------------- |
|
|
![]()
Сообщение
#323
|
|
![]() Geoff Snock | 茶スノック Сообщений: 533 Спасибо сказали: 248 раз ![]() |
Давайте я с вами попробую. Надо бы тока программу для снятия видео найти, я всё устрою У меня есть прога для снятия видео. -------------------- гномов сопротивляются заклинанию!
Цитата Фейспалмы свои себе в сракотан засуньте, если больше сказать нечего. |
|
|
![]()
Сообщение
#324
|
|
![]() Игра на тему героев: http://forum.df2.ru/index.php?showforum=99 Сообщений: 509 Спасибо сказали: 133 раза ![]() |
CamStudio, просто до безобразия
![]() -------------------- |
|
|
![]()
Сообщение
#325
|
|
![]() 🐓🐓🐓🐓🐓🐓🐓 Сообщений: 1 845 Спасибо сказали: 1570 раз ![]() |
Народ, че не играем? Неужели все так плохо?
-------------------- using namespace fbx;
|
|
|
![]()
Сообщение
#326
|
|
![]() Погладь кота! =) Сообщений: 1 202 Спасибо сказали: 170 раз ![]() |
Управление ужасное
![]() -------------------- Мимо проходил)
|
|
|
![]()
Сообщение
#327
|
|
![]() 🐓🐓🐓🐓🐓🐓🐓 Сообщений: 1 845 Спасибо сказали: 1570 раз ![]() |
Ты толком и не объяснил, как ты видишь нормальное управление.
-------------------- using namespace fbx;
|
|
|
![]()
Сообщение
#328
|
|
![]() Погладь кота! =) Сообщений: 1 202 Спасибо сказали: 170 раз ![]() |
Я вижу его так - Если я за одну секунду нажимаю бросок гранаты вправо раз 5, то стреляет чувак только один раз, а не стреляет все следующие пять секунд не оставляя мне шанса пошевелится. если я нажимаю кучу раз клавишу вправо для передвижения, то двигаюсь я ровно с той скоростью которая предусмотрена и никаких очередей, которые надо прерывать клавишей ESC нет. это мое мнение, мож кто еще чего скажет. ну кстати если только меня одного подобное управление не устраивает, я тихо сдуюсь
![]() -------------------- Мимо проходил)
|
|
|
![]()
Сообщение
#329
|
|
![]() Что же Вы , Маэстры, ну-ка гряньте нам что-нибудь !!! Сообщений: 226 Спасибо сказали: 171 раз ![]() |
То, что написал Брейкмастер реализуется очередью команд как описал в одной своей статье Антон Григорьев для Королевства Дельфи. Там он делал в качестве примера статьи игру Сокобан (человечек ходит по уровням и собирает по углам ящики в целевые клетки)
Цитата Cамой нетривиальной частью игры оказалась правильная реакция на клавиатуру. Связано это с тем, что перемещение человечка не мгновенно. Управление человечком осуществляется стрелками. Если пользователь нажал и удерживает стрелку, за время движения человечка в буфере накапливаются сообщения WM_KeyDown, связанные с автоповтором нажатия, причём накапливаются быстрее, чем извлекаются, поэтому когда пользователь отпускает клавишу, человечек продолжает двигаться и останавливается дальше, чем это было задумано. С другой стороны, время перемещения на одну клетку оказалось меньше, чем стандартная величина задержки перед первым повтором нажатия, и из-за этого при удерживании стрелки возникала неприятная пауза между первым и вторым перемещениями. Я попробовал несколько способов, которые имели другие проблемы: например, человечек не реагировал на изменение направления движения, если новая стрелка была нажата до того, как человечек закончил движение в предыдущем направлении. Или неадекватно реагировал, если нажать стрелку, а за время движения успеть отпустить её и снова нажать. В результате экспериментов я остановился на следующем алгоритме. При получении сообщения WM_KeyDown о нажатии стрелки проверяем по его параметрам, является ли нажатие первым, или это автоповтор. Автоповторы просто игнорируем. Если нажатие первое, помещаем в очередь сообщений специальное пользовательское сообщение WM_DoStep, передавая через его параметры информацию о том, какая из стрелок нажата. На этом обработка WM_KeyDown заканчивается. Обработчик WM_DoStep начинает с того, что проверяет текущее состояние нужной стрелки с помощью API-функции GetAsyncKeyState. Если окажется, что пользователь уже отпустил стрелку, ничего делать не надо, сразу выходим. (При реакции на первое нажатие клавиши эта проверка явно излишняя — вряд ли пользователь сумеет так быстро её отпустить. Но зато она хорошо спасает от повторного нажатия/отпускания во время движения человечка — он всё равно остановится, если клавиша в момент принятия решения не будет нажата.) Если проверка пройдена, осуществляем перемещение. В конце работы WM_DoStep вновь проверяет состояние нужной стрелки, и если она до сих пор не отпущена, помещает в очередь ещё одно сообщение WM_DoStep с теми же параметрами. Эта реализация обеспечивает наиболее комфортное, на мой взгляд, поведение человечка. Во-первых, он движется плавно, без пауз. Во-вторых, после отпускания стрелки останавливается при первой же возможности. В-третьих, если игрок захочет поменять направление движения, он может наживать другую стрелку до того, как человечек остановится. Можно, думаю, и без сообщений такое написать, а просто очередью команд, когда нажимается клавиша, т.е. срабатывает keydown то проверяем есть ли данная команда в очереди и кладем в очередь сверху если нет команды. а в конце передвижения на конкретную клетку очищаем очередь от команды, которую только что обработали, и опять проверяем очередь. таким образом нажатая кнопка будет гнать человечка пока кнопку не отпустим, и он по инерции не побежит, так как очередь сама очистится... Как-то так ) -------------------- Это всё я : кодинГ, мэпмейкинГ, скриптинГ
Инфо о моих проектах, в основном геройских, http://phomm.narod.ru Раздел моей тактической игры Интакт http://forum.df2.ru/index.php?showforum=135 |
|
|
![]()
Сообщение
#330
|
|
![]() 😸🧡✊✌️ Сообщений: 16 379 Спасибо сказали: 3207 раз ![]() |
А зачем вообще обрабатывать WM_KeyDown, если есть GetAsyncKeyState()?
-------------------- Я слежу за тобой!
![]() ![]() Цитата Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел. Борис "Бонус" Репетур, "От винта!", выпуск 38. |
|
|
![]()
Сообщение
#331
|
|
![]() 🐓🐓🐓🐓🐓🐓🐓 Сообщений: 1 845 Спасибо сказали: 1570 раз ![]() |
Я вижу его так - Если я за одну секунду нажимаю бросок гранаты вправо раз 5, то стреляет чувак только один раз, а не стреляет все следующие пять секунд не оставляя мне шанса пошевелится. если я нажимаю кучу раз клавишу вправо для передвижения, то двигаюсь я ровно с той скоростью которая предусмотрена и никаких очередей, которые надо прерывать клавишей ESC нет. это мое мнение, мож кто еще чего скажет. ну кстати если только меня одного подобное управление не устраивает, я тихо сдуюсь ![]() да ты просто не привык, играл-то всего полтора раза -------------------- using namespace fbx;
|
|
|
![]()
Сообщение
#332
|
|
![]() Погладь кота! =) Сообщений: 1 202 Спасибо сказали: 170 раз ![]() |
люди не очень любят привыкать к чему-то новому. им проще видеть что-то привычное. ну допустим я привыкну... а друзьям своим что мне сказать? тоже, мол, привыкайте?
![]() а поиграть им в мэджикболл с нормальным управлением очень хочется, поверьте мне... -------------------- Мимо проходил)
|
|
|
![]()
Сообщение
#333
|
|
![]() Immortal Сообщений: 754 Спасибо сказали: 379 раз ![]() |
через 10 минут
energy station >< -------------------- 28 января 1996 г. — 9 октября 2013 г.
Grand Elf всегда останется с нами. Вечная память. [Администрация Форума] |
|
|
![]()
Сообщение
#334
|
|
![]() Отец русской демократии Сообщений: 207 Спасибо сказали: 180 раз ![]() |
Вот и сыграли
![]() -------------------- ![]() |
|
|
![]()
Сообщение
#335
|
|
![]() Immortal Сообщений: 754 Спасибо сказали: 379 раз ![]() |
Energy station. Касторе, фпх, Млег и я уже там.
-------------------- 28 января 1996 г. — 9 октября 2013 г.
Grand Elf всегда останется с нами. Вечная память. [Администрация Форума] |
|
|
![]()
Сообщение
#336
|
|
![]() Immortal Сообщений: 754 Спасибо сказали: 379 раз ![]() |
Energy station. суббота 17:30-19:00 по Москве.
П.с. Уроним Млега в минус! -------------------- 28 января 1996 г. — 9 октября 2013 г.
Grand Elf всегда останется с нами. Вечная память. [Администрация Форума] |
|
|
![]()
Сообщение
#337
|
|
![]() Geoff Snock | 茶スノック Сообщений: 533 Спасибо сказали: 248 раз ![]() |
В субботу, днем (9:00..13:00 мск) снятия промо ради.
-------------------- гномов сопротивляются заклинанию!
Цитата Фейспалмы свои себе в сракотан засуньте, если больше сказать нечего. |
|
|
![]()
Сообщение
#338
|
|
![]() Отец русской демократии Сообщений: 207 Спасибо сказали: 180 раз ![]() |
-------------------- ![]() |
|
|
![]()
Сообщение
#339
|
|
![]() Geoff Snock | 茶スノック Сообщений: 533 Спасибо сказали: 248 раз ![]() |
Не
![]() ![]() -------------------- гномов сопротивляются заклинанию!
Цитата Фейспалмы свои себе в сракотан засуньте, если больше сказать нечего. |
|
|
![]()
Сообщение
#340
|
|
![]() Отец русской демократии Сообщений: 207 Спасибо сказали: 180 раз ![]() |
-------------------- ![]() |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 10 July 2025 - 22:34 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|