|
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 4
|
||||||
Залипание клавиши в консоли10.09.2013, 09:36. Показов 3972. Ответов 11
Метки нет (Все метки)
Здравствуйте, изучаю Шарп, уверено решил написать консольную змейку, но так уж сложилось, что задачу в написании змейки усложняю постепенно.
На данный момент написал программу которая двигает по полю игры ячейку в заданном мной направлении с клавиатуры через определенный промежуток времени. Все вроде даже получилось, но покоя не даёт один нюанс - если несколько секунд держать клавишу зажатой в одном направлении - ячейка упорно продолжает движения в указанную мной сторону, несмотря на мои судоржные попытки ёё развернуть, а реагировать начинает только через несколько десятков секунд. В общем управление с опозданием. Чтобы нормально играть, нужно строго на каждый такт счетчика тыцать клавишу 1 раз. Провёл в попытках это исправить не 1 час, но никак не получилось, подскажите как реализовать фикс данной проблемы.
0
|
||||||
| 10.09.2013, 09:36 | |
|
Ответы с готовыми решениями:
11
Эмуляция нажатия клавиши в консоли Отловить нажатие клавиши в консоли Выход из консоли по нажатию клавиши |
|
46 / 42 / 14
Регистрация: 18.02.2012
Сообщений: 82
|
|
| 10.09.2013, 11:34 | |
|
Проблема в том, что Вы сразу начинаете двигать объект при нажатии клавиши. Правильнее было сделать так, чтобы при нажатии клавиши менялся вектор движения, а не координаты объекта.
0
|
|
|
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
|
||||||
| 10.09.2013, 11:44 | ||||||
|
Согласен, с предыдущим форумчанином)
немного переделал, вышло как то так:
Добавлено через 52 секунды P.S. tic - скорость, если сразу не видно.
1
|
||||||
|
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 4
|
|
| 10.09.2013, 11:46 [ТС] | |
|
Вы правы, спасибо за ответ. Но всё-же, мне было бы интерестно узнать причину этого недоразумения. Код хоть и корявый но по сути, как я понимаю, должен работать правильно. Какова причина залипания?
0
|
|
|
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
|
||
| 10.09.2013, 11:48 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 4
|
|
| 10.09.2013, 12:22 [ТС] | |
|
А с этого возникает вопрос - можно ли как-то буфер очистить?
Чисто для себя интересуюсь.
0
|
|
|
46 / 42 / 14
Регистрация: 18.02.2012
Сообщений: 82
|
|||||||
| 11.09.2013, 00:00 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 4
|
||
| 11.09.2013, 01:32 [ТС] | ||
|
0
|
||
|
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
|
|
| 11.09.2013, 07:37 | |
|
Таки да, она просто вытаскивает всё, что есть в буфере. В с++ была команда fflush, а вот в c#, если честно, что то не слышал про аналогичную чистку.
1
|
|
|
46 / 42 / 14
Регистрация: 18.02.2012
Сообщений: 82
|
|||
| 11.09.2013, 18:54 | |||
|
1
|
|||
|
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 4
|
|
| 18.10.2020, 20:11 | |
|
как по мне проще так :
while (Console.KeyAvailable) { Console.ReadKey(true); }
0
|
|
| 18.10.2020, 20:17 | |
|
Не по теме: На всякий случай: теме 7 лет.
0
|
|
| 18.10.2020, 20:17 | |
|
Помогаю со студенческими работами здесь
12
Считывание нажатой клавиши в консоли некорректна (Символы двоятся)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|