Python Pygame-文本赢得';不要出现在窗口上

Python Pygame-文本赢得';不要出现在窗口上,python,text,pygame,Python,Text,Pygame,我在窗口上显示了一些文本,但当我执行代码时,它只显示了一个空白的黑色窗口。我不知道出了什么问题,因为没有例外。这就是行不通 我是一个绝对的初学者,刚刚通过了几周的Python课程,所以我只是在玩pygame模块,而不是像游戏开发这样的大计划。 我也试图寻找类似的问题,但它们都是如此复杂,我不能很好地理解由于长段代码。 我检查了,没有语法错误,字体文件存在,对象的名称在正确的位置,即它们没有使用错误的方法。 我不知道我还能尝试什么 import pygame as pg pg.init() w

我在窗口上显示了一些文本,但当我执行代码时,它只显示了一个空白的黑色窗口。我不知道出了什么问题,因为没有例外。这就是行不通

我是一个绝对的初学者,刚刚通过了几周的Python课程,所以我只是在玩pygame模块,而不是像游戏开发这样的大计划。 我也试图寻找类似的问题,但它们都是如此复杂,我不能很好地理解由于长段代码。 我检查了,没有语法错误,字体文件存在,对象的名称在正确的位置,即它们没有使用错误的方法。 我不知道我还能尝试什么

import pygame as pg

pg.init()

win = pg.display.set_mode((720,540))

consolas = pg.font.SysFont("Consolas.ttf", 100)

text = consolas.render("hello", False , (255,255,255))

win.blit(text , (0,0))

我希望字符串“hello”将以100的大小在表面上显示,颜色为完全白色,但整个内容根本没有显示。

在绘制文本后,即在win.blit行之后,需要使用pg.display.update()或pg.display.flip()。这两者的区别和用途可以在这里找到:

您必须调用或实际使用win surface的内容更新屏幕

另外,您应该有一个主循环,通过调用来处理事件。这可以确保您的窗口保持打开状态。此外,如果您不处理事件,您的窗口将变得无响应,甚至可能不会绘制任何内容(取决于您的操作系统/窗口管理器)

因此,将此添加到您的代码中:

run = True
while run:
for e in pg.event.get():
    if e.type == pg.QUIT:
        run = False
    pg.display.update()

因为人们已经评论说您必须调用
pygame.display.update()
pygame.display.flip()
以下是完整的代码:

import pygame as pg

pg.init()

win = pg.display.set_mode((720,540))

consolas = pg.font.SysFont("Consolas.ttf", 100)
running = True
while running:
    text = consolas.render("hello", False , (255,255,255))
    for event in pg.event.get():
        if event.type == pg.QUIT:
            running = False
    win.blit(text , (0,0))
    pg.display.flip()
pg.quit()

谢谢,我想,但我认为没有必要把完整的代码放在e