2017-10-26 5 views
1

변수 text = []에 키보드 입력을 추가하고 인쇄하십시오.키보드 입력을 파이썬 변수에 추가하십시오.

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() 

어떻게하면됩니까?

+0

텍스트를 인쇄 할 때 어떤 결과가 발생합니까? – ddor254

답변

0

나는 this question을 찾고 있습니다.

while keepText: 
    text = [] 
    text.append(raw_input('Input something from the keyboard: ')) 

질문에 들여 쓰기가 문제가되는 것처럼 보일 수도 있지만 while 루프는 끝나지 않을 것입니다.

+0

모듈 파이 게임으로 어떻게 할 수 있습니까? –

+0

@ 파이어 멧 창에서 키보드 입력을 원한다는 의미입니까? 입력 된 내용을'# 여기에 입력을 추가하고 싶습니다. '또는 for 루프에 주석이있는 행에 추가 하시겠습니까? –

+0

변수에 키보드를 추가하고 싶습니다. 그런 다음이 변수를 사용합니다. 나는 파이 게임에서 일하기를 원한다. 모듈 파이 게임에서 어떻게 입력합니까? –

0

pygame.KEYDOWN 이벤트가 발생하면 .unicode 특성을 문자열에 추가하거나 목록에 추가하면됩니다.

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

감사합니다. 그것은 내가 찾는 것입니다. –