2016-11-17 9 views
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 
... 

答えて

0

あなたは(その後ろに下がると)出力を破棄するように入力、またはtypeaheadを破棄するflushinp機能を使用することができます。後者の場合、ファイル記述子は1(標準出力用)です。

関連する問題