如何使用键盘输入在屏幕上写入消息?

时间:2015-12-21 22:09:45

标签: python pygame

当我按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()

1 个答案:

答案 0 :(得分:1)

您可以创建一个字符串,然后将每个与您可以显示的字符对应的键追加到末尾:

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