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

时间:2016-08-16 18:46:37

标签: python python-3.x pygame mouseevent

有谁知道为什么这个错误不断出现?我不确定代码有什么问题。我已经从视频中复制了这个以测试鼠标跟踪,但即使两组代码相同(我相信),我的版本也无法正常工作。以下是我从以下代码中获取的视频:https://www.youtube.com/watch?v=dxhNcQ-FDaY

import pygame
from pygame.locals import *
import sys

class MousePos(object):
    def __init(self):
        pygame.init()
        self.myFont = pygame.font.SysFont("Arial", 24)  
        pygame.display.set_caption("Mouse Events")
        self.myScreen = pygame.display.set_mode((400, 400), 0 ,32)
        self.myScreen.fill((255, 255, 255))
        pygame.display.update()

    def coords(self):
        text = self.myFont.render(str(pygame.mouse.get_pos()), True, (0, 0, 0))
        pygame.draw.rect(self.myScreen, (255, 255, 255), (200, 200, 100, 100), 0)

        self.myScreen.blit(text, (200, 200))
        pygame.display.update()

if __name__ == "__main__":
    newMouse = MousePos()
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                newMouse.coords()

2 个答案:

答案 0 :(得分:0)

我的猜测是缺少依赖或库不匹配。 你是如何安装pygame的,并且有任何错误。 我建议您使用pip或您的发行版的包管理器。 此外,您应该确保所有可能需要的非python API和模块都已安装。

答案 1 :(得分:0)

您的代码的问题在于您的初始化方法__init__缺少下划线。由于您的课程从未被初始化,因此您永远不会创建Pygame屏幕。因此错误

更改此行:def __init(self):,至此:def __init__(self):