2015-12-21 92 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的代码,但它完成了工作 –

相关问题