【问题标题】:Why can't I type text on the screen while using the key.get_pressed feature of pygame?为什么我在使用 pygame 的 key.get_pressed 功能时不能在屏幕上输入文本?
【发布时间】:2020-09-24 11:46:09
【问题描述】:

当我在这个程序中输入时,我希望我输入的字母显示在屏幕上。但是,当我尝试键入时,屏幕上什么也没有出现。我该如何解决这个问题,因为当我将 keys[KDOWN] 功能替换为 event.type == KDOWN 功能时它可以工作。

from pygame import *

init()
screen = display.set_mode((800, 600))

name_font = font.Font(None, 32)
name_text = ''


while True:
    screen.fill((255, 255, 255))
    for events in event.get():
        keys = key.get_pressed()
        if events.type == QUIT:
            quit()
        if keys[KEYDOWN]:
            name_text += events.unicode
    text_surface = name_font.render(name_text, True, (0, 0, 0))
    screen.blit(text_surface, (50, 50))


    display.update()

【问题讨论】:

    标签: python text pygame


    【解决方案1】:

    如果你使用get_pressed,你需要检查每一个键。最好检查KEYDOWN事件并获取按下的键。

    试试这个代码:

    from pygame import *
    
    init()
    screen = display.set_mode((800, 600))
    
    name_font = font.Font(None, 32)
    name_text = ''
    
    
    while True:
        screen.fill((255, 255, 255))
        for events in event.get():
            if events.type == QUIT:
                quit()
            if events.type == KEYDOWN:
                name_text += events.unicode
        text_surface = name_font.render(name_text, True, (0, 0, 0))
        screen.blit(text_surface, (50, 50))
    
        display.update()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2013-10-21
      • 2021-09-06
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多