0
私はcursesを使って端末の標準入力を読み取る小さなpythonスクリプトを開発しています。ユーザーがキーを押し続けると、x 'が繰り返された後、より速い一般的な動きのためにmovement_smallstep
がインクリメントされます。この関数は、キーを押すたびに呼び出されます。 UIの動きと機能の変更が同期していないので、ユーザーはターゲットを一般的に「オーバーシュート」しているので、私はいくつかのcursesの標準をフラッシュしたい。Python Curses最新のx stdinをフラッシュ
def movement_manager(step,repeats,key):
global old_key #remembering the n-1 pressed key of stdin
global input_repeats #remembering how often the key was pressed
global movement_smallstep #movement for ui change
if key != old_key:
input_key = key
input_repeats = 0
movement_smallstep = 1
if (input_repeats > repeats):
movement_smallstep+=1
#Flush the newest x stdin inputs of the queue here
input_repeats+=1
return movement_smallstep
たとえば、ユーザーはキー 'A'を23回押します。
Movement(repeats 0-10)=1 Stdin= Unflushed
Movement(repeats 10-20)=2 Stdin= flush oldest userinput
Movement(repeats 10-20)=3 Stdin= flush oldest 2 userinputs
...