pygame.error: не инициализировать видеосистему, используя Repl.it - PullRequest
0 голосов
/ 30 января 2020

Я получаю эту ошибку, когда пытаюсь запустить свой код pygame pygame.error: видеосистема не инициализирована. Я использую Repl.it и пытаюсь создать прицельную игру, которая может отслеживать точность и в которой у вас всего 3 жизни.

import pygame

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False # Here we exit the Loop and execute what after
pygame.quit()

# Play Surface
width = 1080
height = 720
playSurface = pygame.display.set_mode((width, height))
pygame.display.set_caption('Aim Practice')

# Colors
red = pygame.Color(0, 0, 0)
blue = pygame.Color(255, 255, 255)

Изображение большей части кода

https://repl.it/join/dppwnpin-isa__paz (Вы можете просмотреть полный код здесь!)

Ответы [ 2 ]

2 голосов
/ 31 января 2020

Проблема в том, что ваше событие l oop выполняется до инициализации чего-либо. Как говорит @ zenof python в своем ответе, вызовы для подготовки окна должны поступить до главного события l oop.

Ваше главное событие l oop является первым, и ничего не настроено для запуска .

Простое перемещение кода исправит это:

import pygame

# FIRST, HANDLE ALL THE INITIALISATION OF PYGAME, FONTS, MIXER etc.
# Play Surface
width = 1080
height = 720
playSurface = pygame.display.set_mode((width, height))
pygame.display.set_caption('Aim Practice')

# Colors
red  = pygame.Color(0, 0, 0)
blue = pygame.Color(255, 255, 255)

# ... AND THE REST

# MAIN LOOP
run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False # Here we exit the Loop and execute what after

    playSurface.fill( blue )   # fill the screen
    pygame.display.flip()      # flush all the drawing operations to the window

    fpsController.tick_busy_loop(60)  # clamp the max-FPS

pygame.quit()
1 голос
/ 30 января 2020

Вы должны использовать pygame.display.set_mode перед запуском вашего события l oop. pygame.event.get не будет работать, если вы не создали окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...