![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.04.2012
Сообщений: 57
|
![]()
Доброго дня уважаемые! Столкнулся с проблемой асинхронного ввода при написании пакмана, прошу помощи- хотелось бы чтобы игра жила своей жизнью - монстры двигались, пока игрок не производит никаких действий...
Прошу помощи ! Также возникает проблема с морганием экрана при постоянной перерисовке карты... Заранее благодарю |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Скомпилировать ваш код нечем, но идея такова.
Вы должны "крутить" игровой цикл и считывать клавиши, чтобы менять положение пакмана. Используйте int kbhit(void) для определения, было ли нажатие, и если было, то считывать значение с помощью getch(void) и менять направление пакмана (модуль conio.h).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Все верно.
А по поводу мерцания - технология называется двойной буферизацией (правда, на мой взгляд первое слово здесь лишнее). Суть в том, что рисовать изображение в оперативной памяти (в буфере), а на экран выводить уже готовое. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 19.04.2012
Сообщений: 57
|
![]()
насчёт асинхронного ввода что то вроде...
while(true){ ... if(kbhit()) getch(); } ? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 19.04.2012
Сообщений: 57
|
![]()
да именно так попробовал- работает! сильно благодарен!)))
|
![]() |
![]() |
![]() |
#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 |