2017-10-26 4 views
1

anhängen Ich möchte Variable text = [], um die Tastatureingabe anzufügen, und drucken Sie es dann.Tastatureingabe an Variable in Python

import pygame 
pygame.init() 
screen = pygame.display.set_mode([600, 400]) 
keepGoing = True 

def get_text(): 
    keepText = True 
    while keepText: 
     text = [] # I want to add input here 

    for event in pygame.event.get(): 
     if event.type == pygame.KEYDOWN: 
      keys = pygame.key.name(event.key) 
      text.append(keys) 
      print (text) 
      if event.key == pygame.K_ESCAPE: 
       keepText = False     

    while keepGoing:       
     for event in pygame.event.get():  
      if event.type == pygame.QUIT: 
       keepGoing = False 
      if event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_SPACE: 
        get_text() 

      pygame.display.update() 

pygame.quit() 

Wie kann ich das tun?

+0

Was bekommen Sie, wenn Sie Text drucken? – ddor254

Antwort

0

Ich denke, this question ist was du suchst. Sie wollen etwas wie

In Ihrer Frage sieht die Einrückung jedoch problematisch, und Ihre While-Schleife wird nie enden.

+0

Wie kann ich das mit einem Modul pygame tun? –

+0

@ РусланПавлюк - willst du damit die Tastatureingabe im Pygame-Fenster bekommen? Soll die Eingabe in der Zeile mit dem Kommentar '# Ich möchte hier eine Eingabe hinzufügen 'oder später in der for-Schleife eingefügt werden? –

+0

Ich möchte eine Variable zu einer Tastatur hinzufügen. Dann werde ich diese Variable verwenden. Ich möchte Eingabe in Pygame arbeiten. Wie macht man Eingaben im Modul pygame? –

0

Wenn ein pygame.KEYDOWN Ereignis auftritt, können Sie einfach sein .unicode Attribut zu einer Zeichenfolge hinzufügen oder es an eine Liste anhängen.

import pygame as pg 


def main(): 
    screen = pg.display.set_mode((640, 480)) 
    clock = pg.time.Clock() 
    text = '' 

    done = False 

    while not done: 
     for event in pg.event.get(): 
      if event.type == pg.QUIT: 
       done = True 
      elif event.type == pg.KEYDOWN: 
       text += event.unicode 
       print(text) 

     screen.fill((30, 30, 30)) 

     pg.display.flip() 
     clock.tick(30) 


if __name__ == '__main__': 
    pg.init() 
    main() 
    pg.quit() 
+0

Danke? Es ist genau das, wonach ich suche. –