2015-12-21 100 views
0

當我按下1時,我想要1出現在屏幕上。此代碼不顯示任何錯誤消息,並且當我按下1時什麼都不會發生。如何使用鍵盤輸入在屏幕上寫入消息?

import pygame 

pygame.init() 

disp_x = 200 
disp_y = 300 
size = 60 
space = 15 


white = (255,255,255) 
black =(0,0,0) 

gameDisplay = pygame.display.set_mode((disp_x,disp_y)) 
image = pygame.image.load('GREEN_BUBLES.png') 
font = pygame.font.SysFont(None,50) 
text = font.render("0",True,black) 
while True: 
gameDisplay.fill((white)) 
gameDisplay.blit(image,(0,0)) 
for event in pygame.event.get(): 
    if event.type == pygame.KEYDOWN: 
     if event.key == pygame.K_1: 
      text = font.render("1",True,black) 
gameDisplay.blit(text,(15,10)) 



pygame.display.update() 
pygame.event.wait() 
+2

請檢查您的壓痕和編輯你的問題。你的while循環沒有內容。 –

+1

雖然這段時間確實有內容,但它總是如此,所以這就是停止的地方。 – Jay

回答

1

您可以創建一個字符串,然後追加到年底對應於一個char可以顯示每個鍵:

from pygame import init, display, font 
from pygame.event import get as event_getter 
from pygame.locals import * 
from time import sleep 
init() 
surf = display.set_mode ((400, 400)) 

string = "" 
while 1: 
    sleep (0.1) 
    for event in event_getter(): 
    if event.type == KEYDOWN: 
     if event.key == K_BACKSPACE and string: 
     string = string[:-1] 
     else: 
     try: 
      string += str (event.unicode) 
     except TypeError: 
      pass 
    surf.fill ((255,)*3) 
    surf.blit (font.Font (None, 24).render (string, 1, (0,)*3), (100, 100)) 
    display.flip() 
+0

絕對不是很pythonic的代碼,但它完成了工作 –