我试图编写一个python/pygame程序来简单地显示文本。我希望它能工作,这样当你输入字母"A“时,它就会出现在屏幕上(有点像gedit/notepad/任何东西)。我是这样做的,将字母附加到一个字符串中,然后将其呈现并放到屏幕上。但是,我在实际获取用户输入方面有问题。我知道有pygame.key.get_pressed()函数,但只有当您真正知道希望用户按下哪个键(例如W向前推进)时,我才能知道如何使用它,但如果我不知道,则不能使用它。如果这让人困惑,下面是我的代码:
import pygame
import sys
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((600,500))
myfont = pygame.font.Font(None, 60)
inp = ""
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
keys = pygame.key.get_pressed()
inp = inp + #THE PRESSED KEY
screen.fill((0,0,200))
txt = myfont.render(inp, True, (255,255,255))
screen.blit(txt, (100,100))
pygame.display.update()我想知道如何使“按下键”被附加到字符串中。
发布于 2016-04-12 08:14:28
为此您可以使用KEYDOWN事件,因为pygame.key.get_pressed()将以当前FPS的速度给出结果。
下面是一个从代码中修改的工作示例:
import pygame
import sys
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((600,500))
myfont = pygame.font.Font(None, 60)
inp = ""
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
if event.type == pygame.KEYDOWN:
inp += event.unicode
screen.fill((0,0,200))
txt = myfont.render(inp, True, (255,255,255))
screen.blit(txt, (100,100))
pygame.display.update()只改变了这一点:
pygame.key.get_pressed()电话pygame.KEYDOWN事件检查https://askubuntu.com/questions/756305
复制相似问题