如何更改 pygame 中的文本?

How to change text in pygame?

我曾尝试更改显示的文本,但没有成功。我该如何改变它? 我试图做改变的变量。这是我的代码。它超级混乱,但我希望你知道如何提供帮助。

import pygame
import os
pygame.font.init()

FONT = pygame.font.SysFont('comicsans', 100)

SCREENX = 1700
SCREENY = 900

WHITE = (255, 255, 255)

x = 0
TEXT = FONT.render(str(x), 1, (255, 255, 255))

WIN = pygame.display.set_mode((SCREENX, SCREENY))
BACKGROUND = pygame.transform.scale(pygame.image.load(
    os.path.join('Assets', 'space.png')), (SCREENX, SCREENY))


def draw_window():
    WIN.blit(BACKGROUND, (0, 0))
    TEXT = FONT.render(str(x), 1, (255, 255, 255))
    WIN.blit(TEXT, ((SCREENX - TEXT.get_width()) /
         2, (SCREENY - TEXT.get_height()) / 2))
    pygame.display.update()


def main():
    run = True
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    x += 1
                
        draw_window()
    pygame.quit


if __name__ == '__main__':
    main()

所以当我按 space 它说:UnboundLocalError: 局部变量 'x' 在赋值前被引用。

你能帮忙吗?我看过 google,但我没有看到像我这样的问题。我使用 VS 代码。

如果要在函数内更改全局命名空间中的变量,则必须使用 global statement

def main():
    global x # <--- this is missing

    run = True
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    x += 1
                
        draw_window()
    pygame.quit()