I used this function to get keypresses:
Code:
bool Keypress(char &Key)
{
INPUT_RECORD Event;
DWORD NumberOfEvents, EventsRead, EventCounter;
GetNumberOfConsoleInputEvents(hConsole_in, &NumberOfEvents);
if (NumberOfEvents == 0)
return false;
for (EventCounter = 0; EventCounter < NumberOfEvents; EventCounter++)
{
PeekConsoleInput(hConsole_in, &Event, 1, &EventsRead);
if ((Event.EventType == KEY_EVENT) && ((Event.Event.KeyEvent.bKeyDown)))
{
ReadConsoleInput(hConsole_in, &Event, 1, &EventsRead);
Key = Event.Event.KeyEvent.wVirtualKeyCode;
if (!(FlushConsoleInputBuffer(hConsole_in)))
exit(0);
return true;
}
else
ReadConsoleInput(hConsole_in, &Event, 1, &EventsRead);
}
return false;
}
So then you could do this:
Code:
char key = 0;
for (;;)
{
if (Keypress(key))
{
switch(key)
{
case VK_LEFT:
// left
case VK_RIGHT:
// right
default:
// anything else
}
}
// something to do if no key is pressed
}