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