如何解决进行排序应用程序时,Pygame视频系统未初始化
为了视觉目的,我一直在使用pygame在python中进行排序应用程序的开发,现在我遇到一个错误,不确定如何解决。我的代码运行正常,然后开始出现错误,提示“ pygame.error:视频系统未初始化”。这是我的代码:
import pygame
import random
import keyboard
pygame.font.init()
lines = [random.randint(1,25) for i in range(100)]
def line_draw():
array_items = len(lines)
line_color = (0,0)
line_width = int(650 / array_items)
list_pos = 1
for i in lines:
start_x = (800 / (array_items + 1)) * list_pos
start_y = 600
end_x = start_x
end_y = 600 - (i * 20)
pygame.draw.line(gameDisplay,line_color,(start_x,start_y),(end_x,end_y),line_width)
list_pos = list_pos + 1
def refill():
gameDisplay.fill((255,255,255))
line_draw()
pygame.display.update()
pygame.time.delay(3)
def bubble_sort():
exchange = True
elements = len(lines)
passes_remaining = elements - 1
while passes_remaining > 0 and exchange:
exchange = False
pygame.event.pump()
for i in range(passes_remaining):
if lines[i] > lines[i+1]:
exchange = True
temp = lines[i]
lines[i] = lines[i+1]
lines[i+1] = temp
refill()
passes_remaining = passes_remaining - 1
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_o:
bubble_sort()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_r:
lines = [random.randint(1,25) for i in range(100)]
line_draw()
gameDisplay.fill((255,255))
line_draw()
pygame.display.update()
解决方法
您必须初始化为 pygame 模块(例如 pygame.init()
),并且必须在应用程序循环之前使用 pygame.display.set_mode
初始化要显示的窗口或屏幕:
import pygame
# [...]
pygame.init()
pygame.display.set_mode((640,480))
# [...]
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# [...]
pygame.quit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。