Окно Pygame не открывается изнутри скрипта Python - PullRequest
1 голос
/ 20 сентября 2019

Я пытаюсь открыть поверхность пигмея на ПК с Windows 10.Ниже приведены шаги, необходимые для открытия окна 800 на 600.Поверхность открывается и отображается правильно при вызове из оболочки Python следующим образом:

Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
>>> import pygame
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
>>> pygame.init()
(6, 0)
>>> size = (800, 600)
>>> pygame.display.set_mode(size)
<Surface(800x600x32 SW)>
>>> pygame.display.get_surface()
<Surface(800x600x32 SW)> 

Когда я выполняю ту же операцию в скрипте Python, возникает ошибка трассировки:

pygame.error: No available video device**

pygame.init()
self.window = pygame.display.set_mode((width, height))
self.screen = pygame.display.get_surface()
self.background = pygame.surface.Surface(self.screen.get_size()).convert()
self.background.fill((0, 0, 0))
pygame.mouse.set_visible(True)

File "C:\Users\timtru\Documents\PycharmProjects\core.py", line 25, in __init__ super(Pypboy, self).__init__(*args, **kwargs) File "C:\Users\timtru\Documents\PycharmProjects\core.py", line 21, in __init__ self.window = pygame.display.set_mode((width, height)) **pygame.error: No available video device**

Почему я могу получить окно в оболочке, но получить "Нет доступных видеоустройств", когдате же шаги выполняются в скрипте?

1 Ответ

0 голосов
/ 22 сентября 2019

В начале программы, после вызова pygame.init (), вам нужно вызвать

pygame.display.init()

Вам нужно инициализировать дисплей, прежде чем вы сможете его использовать.Из документов ,

Модуль дисплея не может ничего делать, пока не будет инициализирован.

...