Does anyone know how to capture keystrokes for a game (i.e. using the keypad to navigate a simple ascii based game where 8 = up, 2 = down, 4 left, etc... and pressing return is not necessary, moving in a single keystroke is the goal.)? I found this code, which looks like a good idea, but is over my head. Adding comments, or sending me to an article on the subject etc, would be great help. I know a lot of people have this question. Thanks in advance?
try:
from msvcrt import kbhit
except ImportError:
import termios, fcntl, sys, os
def kbhit():
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while True:
try:
c = sys.stdin.read(1)
return True
except IOError:
return False
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)