use src.timeout instead of while for input wait

This commit is contained in:
adrienmalin 2019-02-11 22:27:55 +01:00
parent c107838205
commit 3c70d17ca0

View File

@ -571,8 +571,8 @@ class Game:
self.scr = scr self.scr = scr
if curses.has_colors(): if curses.has_colors():
self.init_colors() self.init_colors()
self.scr.nodelay(True)
curses.curs_set(0) curses.curs_set(0)
self.scr.timeout(0)
self.scr.getch() self.scr.getch()
self.scheduler = sched.scheduler(time.time, self.process_input) self.scheduler = sched.scheduler(time.time, self.process_input)
self.random_bag = [] self.random_bag = []
@ -655,12 +655,11 @@ class Game:
self.scheduler.run() self.scheduler.run()
def process_input(self, delay): def process_input(self, delay):
end = time.time() + delay self.scr.timeout(int(1000*delay))
while self.playing and time.time() < end:
try: try:
self.do_action[self.scr.getkey()]() self.do_action[self.scr.getkey()]()
except (curses.error, KeyError): except (curses.error, KeyError):
continue pass
def pause(self): def pause(self):
self.stats.time = time.time() - self.stats.time self.stats.time = time.time() - self.stats.time
@ -668,7 +667,7 @@ class Game:
self.hold.refresh(paused=True) self.hold.refresh(paused=True)
self.matrix.refresh(paused=True) self.matrix.refresh(paused=True)
self.next.refresh(paused=True) self.next.refresh(paused=True)
self.scr.nodelay(False) self.scr.timeout(-1)
while True: while True:
key = self.scr.getkey() key = self.scr.getkey()
if key == self.config.get("CONTROLS", "QUIT"): if key == self.config.get("CONTROLS", "QUIT"):
@ -703,7 +702,7 @@ class Game:
self.matrix.window.addstr(10, 9, "GAME", curses.A_BOLD) self.matrix.window.addstr(10, 9, "GAME", curses.A_BOLD)
self.matrix.window.addstr(11, 9, "OVER", curses.A_BOLD) self.matrix.window.addstr(11, 9, "OVER", curses.A_BOLD)
self.matrix.window.refresh() self.matrix.window.refresh()
self.scr.nodelay(False) self.scr.timeout(-1)
while self.scr.getkey() != self.config.get("CONTROLS", "QUIT"): while self.scr.getkey() != self.config.get("CONTROLS", "QUIT"):
pass pass
self.quit() self.quit()