@DimaIs

Как осуществить управление посредством клавиатуры?

Появилась потребность сделать управление в приложении посредством клавиатуры, но нигде ничего толкового так и не нашел, только обрывки или не совсем то, что мне нужно. Например, я хочу осуществить управление кубиком через стрелки. Подкиньте материала, буду рад:) Еще, если кто знает, как осуществить ПОПЫТКУ считывания в течение определенного времени, ну например пока кубик стоит, в течение секунды попробовать считать символ/число, если его нет, то по окончание времени прекратить попыктку. Заранее спасибо
  • Вопрос задан
  • 584 просмотра
Решения вопроса 1
@developer007
змейка C++ -> https://code-live.ru/post/cpp-oldschool-snake/
------------
ну можно в отдельном потоке(google: threads C++) отслеживать нажатие клавиш
while(1)
    {
        ch = getch();
        code = static_cast<int>(ch);
            if(ch == 27) // если клавиша esc
                exit(0);
    }


и выставлять флаг какой нибудь , мол клавиша была нажата
Далее в функции отрисовки проверять этот флаг и делать что-нибудь
--------
Есть функция GetAsyncKeyState она асинхронно проверяет нажата ли клавиша?
https://msdn.microsoft.com/ru-ru/library/windows/d...
тут константы клавиш https://msdn.microsoft.com/ru-ru/library/windows/d...

#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{

	while (1)
	{
		cout << "DRAW!!" << endl;

		if (GetAsyncKeyState(VK_SPACE) != 0)
		{
			cout << "jump!" << endl;
		}

		_sleep(100);
	}

	return 0;
}


*функция получает состояние клавиши даже когда окно не в фокусе, где то свернуто
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы