|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.04.2012, 18:38 | #1 |
Пользователь
Регистрация: 19.04.2012
Сообщений: 57
|
Проблема -Асинхронный ввод
Доброго дня уважаемые! Столкнулся с проблемой асинхронного ввода при написании пакмана, прошу помощи- хотелось бы чтобы игра жила своей жизнью - монстры двигались, пока игрок не производит никаких действий...
Прошу помощи ! Также возникает проблема с морганием экрана при постоянной перерисовке карты... Заранее благодарю |
19.04.2012, 19:23 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Скомпилировать ваш код нечем, но идея такова.
Вы должны "крутить" игровой цикл и считывать клавиши, чтобы менять положение пакмана. Используйте int kbhit(void) для определения, было ли нажатие, и если было, то считывать значение с помощью getch(void) и менять направление пакмана (модуль conio.h).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
19.04.2012, 20:02 | #3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Все верно.
А по поводу мерцания - технология называется двойной буферизацией (правда, на мой взгляд первое слово здесь лишнее). Суть в том, что рисовать изображение в оперативной памяти (в буфере), а на экран выводить уже готовое. |
19.04.2012, 21:02 | #4 |
Пользователь
Регистрация: 19.04.2012
Сообщений: 57
|
насчёт асинхронного ввода что то вроде...
while(true){ ... if(kbhit()) getch(); } ? |
19.04.2012, 21:10 | #5 |
Пользователь
Регистрация: 19.04.2012
Сообщений: 57
|
да именно так попробовал- работает! сильно благодарен!)))
|
20.04.2012, 07:44 | #6 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
1. Ну, вместо true лучше использовать переменную, означающую, что программа должна продолжать работать.
2. Вместо kbhit и getch зачастую используются более специфические функции, нежели стандартные системные. Хотя бы потому, что стандартные системные не отслеживают отпускание клавиши, а иногда это бывает важно. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
матрицы. ввод из файла. проблема. | -Vaka- | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 02.05.2011 11:24 |
Асинхронный вызов в C# | q_proger | C# (си шарп) | 7 | 16.12.2010 23:27 |
Асинхронный просмотр | Claster | Помощь студентам | 6 | 11.02.2010 15:38 |
Асинхронный сокет | raspberry | C/C++ Сетевое программирование | 8 | 07.07.2009 16:51 |
Асинхронный ввод/вывод | Pblog | Обсуждение статей | 0 | 27.05.2007 02:13 |