LJ/clitools/generators/drawingTests/keyborad_input.py
Lapin 9fecb97df7 [feat] drawing optimisation
add some generator to test the optoimisation:

adjust_brightness.py:
	set some rectangle to rerify the consant of brightnes
keyborad_input.py:
	is an exenmple of non blocking input reading
angleInteractive.py:
	is an interactiv version to test the angle.
	you can separatly set the lenght of each segment
	you can set the angle
	it must be run without brightnes optimization because mey be lenght have an importance
2020-12-30 19:16:18 +01:00

78 lines
1.5 KiB
Python

# code exemple find at : https://stackoverflow.com/questions/2408560/python-nonblocking-console-input
import sys
import select
import tty
import termios
def isData():
return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
old_settings = termios.tcgetattr(sys.stdin)
try:
tty.setcbreak(sys.stdin.fileno())
i = 0
while 1:
#if i % 100000 == 0:
# print("i", i)
#i += 1
if isData():
c = sys.stdin.read(1)
print(c)
if c == '\x1b': # x1b is ESC
break
finally:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
### for windows
#import msvcrt
#
#num = 0
#done = False
#while not done:
# print(num)
# num += 1
#
# if msvcrt.kbhit():
# print "you pressed",msvcrt.getch(),"so now i will quit"
# done = True
#
## cross platforme (but may be a bit huge to import pygame...)
#import pygame
#from pygame.locals import *
#
#def display(str):
# text = font.render(str, True, (255, 255, 255), (159, 182, 205))
# textRect = text.get_rect()
# textRect.centerx = screen.get_rect().centerx
# textRect.centery = screen.get_rect().centery
#
# screen.blit(text, textRect)
# pygame.display.update()
#
#pygame.init()
#screen = pygame.display.set_mode( (640,480) )
#pygame.display.set_caption('Python numbers')
#screen.fill((159, 182, 205))
#
#font = pygame.font.Font(None, 17)
#
#num = 0
#done = False
#while not done:
# display( str(num) )
# num += 1
#
# pygame.event.pump()
# keys = pygame.key.get_pressed()
# if keys[K_ESCAPE]:
# done = True
#