Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pygame.error:视频系统未初始化_Python_Pygame - Fatal编程技术网

Python pygame.error:视频系统未初始化

Python pygame.error:视频系统未初始化,python,pygame,Python,Pygame,因此,当我尝试运行pygame代码时,出现以下错误: pygame.error:视频系统未初始化 我在下面的代码中指定wing IDE告诉我的位置 import os import sys import math import pygame import pygame.mixer from pygame.locals import * black = 0,0,0 white = 255,255,255 red = 255,0,0 green = 0,255,0 blue = 0,0,255

因此,当我尝试运行pygame代码时,出现以下错误: pygame.error:视频系统未初始化

我在下面的代码中指定wing IDE告诉我的位置

import os
import sys
import math
import pygame
import pygame.mixer
from pygame.locals import *

black = 0,0,0
white = 255,255,255
red = 255,0,0
green = 0,255,0
blue = 0,0,255

screen = screen_width, screen_height = 600, 400

clock = pygame.time.Clock()

pygame.display.set_caption("Physics")

fps_cap = 120
running = True
while running:
    clock.tick(fps_cap)

    for event in pygame.event.get(): #error is here
        if event.type == pygame.QUIT:
            running = False

    screen.fill(white)

    pygame.display.flip()

pygame.quit()
sys.exit    
#!/usr/bin/env python
你哪儿都没打过电话

请参阅或特定教程,其中解释了:

在使用pygame之前,需要对其进行初始化。最常见的方法就是打一个电话

这将尝试为您初始化所有pygame模块。并非所有pygame模块都需要初始化,但这将自动初始化那些需要初始化的模块。您还可以手动轻松初始化每个pygame模块。例如,仅初始化您只需调用的字体模块


在您的特定情况下,它可能会抱怨您调用了它的
set\u caption
或它的
flip
,而没有先调用它的
init
。但实际上,正如本教程所说,最好只在顶部初始化所有内容,而不是试图准确地确定什么时候需要初始化。

您会遇到一个错误,因为您试图设置窗口标题(使用
set_caption()
),但尚未创建pygame窗口,因此,您的
屏幕
变量只是一个包含未来窗口大小的元组

要创建pygame窗口,必须调用
pygame.display.set_mode(WindowsSize)


祝你好运:)

我最近遇到了这个问题,我在我编写的代码中发现了一个奇怪而不寻常的错误——只是在10分钟内读了十几遍并重新读了十几遍之后,才尝试启动文件(看起来很完美)

pygame.init()
。有
screen=pygame.display.set_mode((size))
,变量size在全局名称空间中可用

原来这是主要的游戏循环

# main game loop
while RUNNING == True:
    for tneve in pygame.event.get():
        if tneve.type == QUIT:
            print(tneve)
            RUNNING = False
        loop()
        render()
        CLOCK.tick(FPS)
    cleanup()
# End
多痛苦啊

附言。 问题是在
RUNNING=False
下面的所有内容都缩进了一站太远

您必须添加:

pygame.init()

退出显示器之前,应停止while循环。

1使用测试版时,会出现此问题

2所以我的建议是,请使用新的、旧的版本(如果现在是3.8 python,您可以 需要安装python(3.7)

3现在转到python终端并安装pygame(pip安装pygame)

4现在问题解决了

  • 如果您正在执行
    pygame.init()
    ,请解决视频系统初始化问题。 但是你会得到下一个错误,比如:
  • AttributeError:tuple对象没有属性“fill”
    )此


  • 当你这样做的时候,这个问题就解决了
  • 但我不喜欢这样做

    screen = screen_width, screen_height = 600, 400
    

  • 然后整个问题就解决了

  • 如果在
    pygame
    窗口中使用
    class
    ,请不要在
    类中使用
    pygame.init()
    。在以下库中使用
    pygame.init()

    我对您的代码做了一些修改:

    import os
    import sys
    import math
    import pygame
    import pygame.mixer
    from pygame.locals import *
    
    pygame.init()
    black = 0, 0, 0
    white = 255, 255, 255
    red = 255, 0, 0
    green = 0, 255, 0
    blue = 0, 0, 255
    
    screen = pygame.display.set_mode((600, 400))
    
    clock = pygame.time.Clock()
    
    pygame.display.set_caption("Physics")
    
    
    while True:
        clock.tick(120)
    
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
        screen.fill(green)
    
        pygame.display.flip()
    

    将代码更改为此,可以避免该错误。 运行时: 时钟滴答声(fps\U盖)


    Tim,这是一个很棒的故事,谢谢你与我们分享,但它并没有回答问题,而是描述了不同的问题。
    screen = screen_width, screen_height = 600, 400
    
    import os
    import sys
    import math
    import pygame
    import pygame.mixer
    from pygame.locals import *
    
    pygame.init()
    black = 0, 0, 0
    white = 255, 255, 255
    red = 255, 0, 0
    green = 0, 255, 0
    blue = 0, 0, 255
    
    screen = pygame.display.set_mode((600, 400))
    
    clock = pygame.time.Clock()
    
    pygame.display.set_caption("Physics")
    
    
    while True:
        clock.tick(120)
    
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
        screen.fill(green)
    
        pygame.display.flip()
    
    for event in pygame.event.get(): #error is here
        if event.type == pygame.QUIT:
            running = False
            pygame.quit()
    if running:
         screen.fill(white)
         pygame.display.flip()