Видеосистема не инициализирована, хотя я ее инициализировал - PullRequest
0 голосов
/ 01 мая 2018

Видеосистема с ошибками не инициализирована, хотя я ее инициализировал. Когда я делаю это без создания классов, я не получаю ошибку. Может кто-нибудь, пожалуйста, объясните мне это.

См. Код ниже:

from pygame import *
import pygame

class App:
    def __init__(self):
        self.exitgame = False
        self.surface = (640, 500)
        pygame.init()

    def setup(self):
        display.set_mode(self.surface)
        display.update()

    def exitapp(self):
        if self.exitgame:
        quit()

if __name__ == "__main__":
    game = App()
    game.setup()
    switch = {QUIT: quit()}
    while not game.exitgame:
        for event in event.get():
            switch.get(event.type)

1 Ответ

0 голосов
/ 01 мая 2018

Совет: используйте CTRL + K , чтобы правильно отформатировать код

Во-первых, экран хранится неправильно, сделайте его атрибутом, и он поможет вам позже.

Во-вторых, в словаре переключателей функция quit всегда запускается и не работает в цикле событий.

В-третьих, вы импортируете pygame дважды.

В-четвертых, не используйте quit, используйте pygame.quit ().

В-пятых, есть несколько бесполезных функций, которые могут быть удалены без влияния на класс приложения.

Вот правильный код:

import pygame

class App:
    def __init__(self):
        self.exitgame = False
        self.surface = (640, 500)
        self.screen = pygame.display.set_mode(self.surface)

    def setup(self):
        pass

if __name__ == "__main__":
    game = App()
    game.setup()
    while not game.exitgame:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game.exitgame = True

    pygame.quit()
...