Simples Ziel dieses Codes ist es, dass der User eine Zahl eingibt und dass diese während der Eingabe angezeigt wird. Ferner soll Backspace dabei normal nutzbar sein. Es soll beim Verlassen der Schleife (mittels Eingabe-Taste) in der Variable fsize eine Zahl zwischen 1 und 9999 stehen. Es wird pygame dafür genutzt.
Irgendwie sieht mir das viel zu umständlich aus, daher wollte ich fragen ob das auch viel einfacher machbar ist. Grund für Komplikationen ist u.a., dass fsize den Wert '' (= leerer String) hat, wenn man die ganze Eingabe "gebackspacet" hat. Und dass man das nicht einfach per int(fsize) zu 0 machen kann.
Code: Alles auswählen
while event.key != K_RETURN or fsize == 0:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key in (K_1,K_2,K_3,K_4,K_5,K_6,K_7,K_8,K_9,K_0):
a = pygame.key.name(event.key)
fsize = min(9999,fsize*10+int(a))
elif event.key == K_BACKSPACE:
if fsize > 0:
fsize = str(fsize)[:-1]
if fsize: fsize = int(fsize)
else: fsize = 0
draw_txt(str(fsize)) #Funktion, die sich um die Bildschirmausgabe kümmert