Python Pygame屏幕未填充

Python Pygame屏幕未填充,python,pygame,python-3.7,Python,Pygame,Python 3.7,刚刚开始python编码,所以我不是很在行,但我正在尝试一个吃豆人游戏,我在启动时出现了这个错误,屏幕没有填满,我不知道为什么??我经历过了,一切看起来都很好?这是到目前为止我的代码。该错误必须与介绍部分,但我找不到它黑色=(0,0,0) 您没有更新显示。注意,显示在播放绘图中更新,但在介绍绘图中未更新。我建议在主应用程序循环结束时调用pg.display.update(),而不是在*\u draw方法中调用,因为在任何情况下都必须更新显示: 主类: # [...] def运行(自): 自运行时

刚刚开始python编码,所以我不是很在行,但我正在尝试一个吃豆人游戏,我在启动时出现了这个错误,屏幕没有填满,我不知道为什么??我经历过了,一切看起来都很好?这是到目前为止我的代码。该错误必须与介绍部分,但我找不到它<代码>黑色=(0,0,0)


您没有更新显示。注意,显示在
播放绘图
中更新,但在
介绍绘图
中未更新。我建议在主应用程序循环结束时调用
pg.display.update()
,而不是在*
\u draw
方法中调用,因为在任何情况下都必须更新显示:

主类:
# [...]
def运行(自):
自运行时:
如果self.state=='startscreen':
self.intro_事件()
self.intro_update()
self.intro_draw()
elif self.state==“播放”:
self.play_事件()
self.play_update()
self.play_draw()
elif self.state==“高分”:
self.high_事件()
self.high_update()
自我高分()
其他:
self.running=False
pg.display.update()#
import pygame as pg
import sys
from settings import *

pg.init()
pvec = pg.math.Vector2


class Main:
    def __init__(self):
        self.screen = pg.display.set_mode((WIDTH, HEIGHT))
        self.clock = pg.time.Clock()
        self.running = True
        self.state = 'startscreen'
        self.cellwidth = WIDTH//28
        self.cellheight = HEIGHT//38

        self.load()

    def run(self):
        while self.running:
            if self.state == 'startscreen':
                self.intro_events()
                self.intro_update()
                self.intro_draw()
            elif self.state == 'play':
                self.play_events()
                self.play_update()
                self.play_draw()
            elif self.state == 'highscore':
                self.high_events()
                self.high_update()
                self.high_draw()
            else:
                self.running = False
            self.clock.tick(FPS)
        pg.quit()
        sys.exit()

    def draw_text(self, text, screen, pos, size, color, fontname, centered=False):
        font = pg.font.SysFont(fontname, size)
        scrtext = font.render(text, False, color)
        text_size = scrtext.get_size()
        if centered:
            pos[0] = pos[0]-text_size[0]//2
            pos[1] = pos[1] - text_size[1] // 2
        screen.blit(scrtext, pos)

    def draw_grid(self):
        for x in range(WIDTH//self.cellwidth):
            pg.draw.line(self.background, GRAY, (x*self.cellwidth, 0), (x*self.cellwidth, HEIGHT))
        for x in range(HEIGHT//self.cellheight):
            pg.draw.line(self.background, GRAY, (0, x*self.cellheight), (WIDTH, x*self.cellheight))

    def load(self):
        self.background = pg.image.load('background2.png')
        self.background = pg.transform.scale(self.background, (WIDTH, HEIGHT))

# INTRO

    def intro_events(self):
        for event in pg.event.get():
            if event.type == pg.QUIT:
                self.running = False
            if event.type == pg.KEYDOWN and event.key == pg.K_SPACE:
                self.state = 'play'
            if event.type == pg.KEYDOWN and event.key == pg.K_BACKSLASH:
                self.state = 'highscore'

    def intro_update(self):
        pass

    def intro_draw(self):
        self.screen.fill(BLACK)
        self.draw_text('PLAY GAME', self.screen, [WIDTH//2, HEIGHT//2+150],
                       INTRO_TEXT_SIZE, ORANGE, INTRO_FONT, centered=True)
        self.draw_text('HIGH SCORES', self.screen, [WIDTH//2, HEIGHT//2+200],
                       INTRO_TEXT_SIZE, ORANGE, INTRO_FONT, centered=True)
        self.draw_text('PACMAN PORTAL', self.screen, [WIDTH//2, HEIGHT//2-250],
                       LOGO, ORANGE, LOGO_FONT, centered=True)


# HIGH SCORE

    def high_events(self):
        for event in pg.event.get():
            if event.type == pg.QUIT:
                self.running = False
            if event.type == pg.KEYDOWN and event.key == pg.K_BACKSLASH:
                self.state = 'startscreen'

    def high_update(self):
        pass

    def high_draw(self):
        self.screen.fill(BLACK)
        self.draw_text('HIGH SCORES', self.screen, [WIDTH // 2, HEIGHT // 2 - 250],
                       INTRO_TEXT_SIZE, ORANGE, INTRO_FONT, centered=True)
        pg.display.update()

# PLAYING

    def play_events(self):
        for event in pg.event.get():
            if event.type == pg.QUIT:
                self.running = False

    def play_update(self):
        pass

    def play_draw(self):
        self.screen.fill(BLACK)
        self.screen.blit(self.background, (0, 0))
        self.draw_text('SCORE: ', self.screen, (30, 750), 35, WHITE, INTRO_FONT, centered=False)
        self.draw_grid()
        pg.display.update()