python pygame更新文本标签

标签 python pygame

我希望在按下按键时更新文本标签,但没有任何反应。它可能与循环有关,但我不确定如何修复它。

我正在使用 pygame

import pygame

pygame.init()

display_width = 800
display_height = 600

screen = pygame.display.set_mode((display_width, display_height))
done = False

pygame.display.set_caption('UTTER')

bg = pygame.image.load("wheel.bmp")

digitalFont = pygame.font.Font("digital-7.ttf",26)

mixValue = "03"

def updateLED (dial, value):
    if dial == "mix":
        mixLED = digitalFont.render(value, 1, (255,255,0))
        screen.blit(mixLED, (362, 166))


while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_DOWN:
                updateLED("mix", "01")
                print("down")

    # Add this somewhere after the event pumping and before the display.flip()
    screen.blit(bg, (0, 0))

    updateLED ("mix", "03")

    pygame.display.update()

pygame.quit()
quit()

最佳答案

当您按下按键时,您会更改标签

updateLED("mix", "01")

但是你有另一个updateLED,它在每个循环中将文本更改为旧的

updateLED("mix", "03")

所以你看不到新文本。

blit 在缓冲区中绘制(以防止屏幕闪烁),并且 pygame.display.update() 将缓冲区发送到屏幕。

但是还有其他问题 - KEYDOWN 是非常短的事件 - 当按键状态从“UP”更改为“DOWN”时 - 而不是当按键按住时。

# default text
text = "03"

while not done:


    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_DOWN:
                # new text
                text = "01"
                print("down")

        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_DOWN:
                # again old text
                text = "03"
                print("up")

    screen.blit(bg, (0, 0))

    updateLED("mix", text)

    pygame.display.update()

关于python pygame更新文本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34864221/

相关文章:

python - 敌人跟随中间的玩家

python - 如何在区域上方激活功能,在限制区域外保持事件状态

python - 关闭计划库中的日志记录

python - Pygame 错误参数必须是 pygame.surface 而不是 None

python - 使用未压缩的 RLE 为 COCO 数据集编码 numpy 数组

python - 我可以使用 IMDbPY 检索 IMDb 对给定电影的电影推荐吗?

python - 如何让 Sprite 旋转面向鼠标?

python - 追逐游戏-错误信息: "' module' object has no attribute 'display' "

python - numpy:gzipped 文件的 fromfile

python - 如何使用 pytest 测试简单的堆栈类