Python PyGame:文本未显示

Python PyGame:文本未显示,python,pygame,Python,Pygame,我在遵循一个教程,我正试图让我的文本出现在屏幕上,这是我的代码,但文本不会出现: from __future__ import division import math import sys import pygame class MyGame(object): def __init__(self): pygame.mixer.init() pygame.mixer.pre_init(44100, -16, 2, 2048) pygam

我在遵循一个教程,我正试图让我的文本出现在屏幕上,这是我的代码,但文本不会出现:

from __future__ import division
import math
import sys
import pygame


class MyGame(object):
    def __init__(self):
        pygame.mixer.init()
        pygame.mixer.pre_init(44100, -16, 2, 2048)
        pygame.init()

        self.width = 800
        self.height = 600
        self.screen = pygame.display.set_mode((self.width, self.height))

        self.bg_color = 0, 0, 0

        font = pygame.font.Font(None, 100)

        text = font.render("text that should appear", True, 238, 58, 140)


        self.FPS = 30
        self.REFRESH = pygame.USEREVENT+1
        pygame.time.set_timer(self.REFRESH, 1000//self.FPS)


    def run(self):
        running = True
        while running:
            event = pygame.event.wait()

            if event.type == pygame.QUIT:
                running = False

            elif event.type == self.REFRESH:
                self.draw()

            else:
                pass 

    def draw(self):
        self.screen.fill(self.bg_color)

        screen.blit(text, [400,300])

        pygame.display.flip()


MyGame().run()
pygame.quit()
sys.exit()

知道为什么会这样吗?我是忘了导入库还是我的绘制方法出了问题?

看起来您正在将
颜色的三个RGB值作为三个单独的值传递给
渲染
。它们应该作为一个元组传入

您还缺少一些
self
s
screen.blit(text,[400300])
应该是
self.screen.blit(text,[400300])
,如果您想在
\uuu init\uu
draw
中都可以访问
text
的所有实例,则需要将
text
转换为
self.text

from __future__ import division
import math
import sys
import pygame


class MyGame(object):
    def __init__(self):
        pygame.mixer.init()
        pygame.mixer.pre_init(44100, -16, 2, 2048)
        pygame.init()

        self.width = 800
        self.height = 600
        self.screen = pygame.display.set_mode((self.width, self.height))

        self.bg_color = 0, 0, 0

        font = pygame.font.Font(None, 100)

        self.text = font.render("text that should appear", True, (238, 58, 140))


        self.FPS = 30
        self.REFRESH = pygame.USEREVENT+1
        pygame.time.set_timer(self.REFRESH, 1000//self.FPS)


    def run(self):
        running = True
        while running:
            event = pygame.event.wait()

            if event.type == pygame.QUIT:
                running = False

            elif event.type == self.REFRESH:
                self.draw()

            else:
                pass 

    def draw(self):
        self.screen.fill(self.bg_color)

        self.screen.blit(self.text, [400,300])

        pygame.display.flip()


MyGame().run()
pygame.quit()
sys.exit()
结果: