pygame.display.update() 错误:视频系统未初始化 [英] pygame.display.update() error: video system not initialized
问题描述
import pygame
from pygame.locals import*
def main():
global FPSCLOCK, DISPLAYSURF, BASICFONT, PLAY_SURF, PLAY_RECT, NEW_SURF, NEW_RECT, SOLVE_SURF, SOLVE_RECT
black = ( 0, 0, 0)
Aqua = ( 0, 255, 255)
Blue = ( 0, 0, 255)
Fuchsia = (255, 0, 255)
Gray = (128, 128, 128)
Green =( 0, 128, 0)
Lime =( 0, 255, 0)
Maroon= (128, 0, 0)
NavyBlue = ( 0, 0, 128)
Olive =(128, 128, 0)
Purple =(128, 0, 128)
Red= (255, 0, 0)
Silver =(192, 192, 192)
Teal =( 0, 128, 128)
White =(255, 255, 255)
Yellow =(255, 255, 0)
ButtonColor= black
textcolor= Red
BASICFONTSIZE = 20
pygame.init()
def makeText(text, color, bgcolor, top, left):
textSurf = BASICFONT.render(text, True, color, bgcolor)
textRect = textSurf.get_rect()
textRect.topleft = (top, left)
return (textSurf, textRect)
FPSCLOCK = pygame.time.Clock()
BASICFONT = pygame.font.Font('freesansbold.ttf', BASICFONTSIZE)
title_screen= pygame.image.load("Journey to Vallhalla.png")
DISPLAYSURF = pygame.display.set_mode((1300, 690))
PLAY_SURF , PLAY_RECT = makeText("Click to Play", textcolor, ButtonColor, 600,400)
title=DISPLAYSURF.blit(title_screen, (0,0 ))
playb=DISPLAYSURF.blit(PLAY_SURF, PLAY_RECT)
player=pygame.image.load("player.jpg")
playerx=650
playery=520
movex,movey=0,0
while True: # main game loop
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1 and PLAY_SURF.get_rect(topleft=(600, 400)).collidepoint(pygame.mouse.get_pos()):
player1= DISPLAYSURF.blit(player,(650,520))
DISPLAYSURF.fill(Gray)
if event.type == KEYDOWN:
if event.key==K_LEFT:
movex = -10
elif event.key==K_RIGHT:
movex=+10
elif event.key==K_DOWN:
movey=+10
elif event.key==K_SPACE:
movey=-30
if event.type==KEYUP:
if event.key==K_LEFT:
movex += 10
elif event.key==K_RIGHT:
movex=0
elif event.key==K_DOWN:
movey=0
elif event.key==K_SPACE:
movey=0
movex+=playerx
movey+=playery
pygame.display.update()
我收到此错误:
回溯(最近一次调用最后一次):pygame.display.update()错误:视频系统未初始化我是一个 pygame 菜鸟,不知道如何解决这个问题,请帮忙!
Traceback (most recent call last): pygame.display.update() error: video system not initialized I am a pygame noob and do not know how to fix this please help!
我现在只是添加一个句子,这样我就可以提交 post.dsijklasdvjnkjdlsnv ksdjvkjkjsndlknsdva kksajsdjdvkjlkvnsddlkvndk.sddvjvkdsvnlskdkdsjvjkvv skdvkvjnskjv
I am now just adding a sentence so it will let me submit the post.dsijklasdvjnkjdlsnv ksdjvkjkjsndlknsdva kksajsdjdvkjlkvnsddlkvndk. sddvjvkdsvnlskdkdsjvjkvv skdvkvjnskjv
推荐答案
我假设您的意思是退出游戏时会发生此错误.pygame.quit()
取消初始化所有 pygame 模块,但 while 循环仍然继续运行,当 pygame.display.update()
被调用时,视频系统不再初始化并导致错误.要解决该问题,请执行以下操作:
I assume you mean this error occurs when you quit the game. pygame.quit()
uninitializes all pygame modules, but the while loop still keeps running and when pygame.display.update()
is called, the video system is not initialized anymore and the error is caused. To fix that problem do something like this:
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
# Game code ...
# After the while loop is done, uninitialize pygame and exit the program.
pygame.quit()
sys.exit() # import sys at the top of the module.
这篇关于pygame.display.update() 错误:视频系统未初始化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!