2016-11-15 3 views
0

Ich habe ein Konsolenspiel in Python gemacht, und ich möchte die Konsole deaktivieren, wenn es die Geschichte druckt. Es sieht wie folgt aus:Python deaktivieren Konsole im Programm?

print("First line of story") 
time.sleep(2) 
print("Second line of story") 
time.sleep(2) 

Und so weiter ...

Also mein Problem ist, dass der Spieler mit der Konsole eingeben und vermasseln kann, während er die Geschichte schreibt. Kann ich die Eingabe irgendwie deaktivieren?

Antwort

0

Wenn Sie auf Unix sind, können Sie Echo wie folgt deaktivieren:

import sys 
import termios 
import time 

fd = sys.stdin.fileno() 
old = termios.tcgetattr(fd) 
new = termios.tcgetattr(fd) 
new[3] &= ~termios.ECHO 

termios.tcsetattr(fd, termios.TCSADRAIN, new) 

print("First line of story") 
time.sleep(2) 
print("Second line of story") 
time.sleep(2) 

termios.tcsetattr(fd, termios.TCSADRAIN, old) 

Wenn Sie die Eingabe unterdrückt nach dem letzten tcsetattr Ruf hallte werden nicht wollen, können Sie die letzte TCSADRAIN mit TCSAFLUSH ersetzen .

Dokumentation für das Modul termios finden Sie here, wo auch das Beispiel stammt.

Verwandte Themen