Вам необходим цикл обработки событий, иначе приложение будет закрыто немедленно.
Посмотрите на следующий код из http://pygametutorials.wikidot.com:
import pygame
from pygame.locals import *
class App:
def __init__(self):
self._running = True
self._display_surf = None
self.size = self.weight, self.height = 640, 400
def on_init(self):
pygame.init()
self._display_surf = pygame.display.set_mode(self.size, pygame.HWSURFACE | pygame.DOUBLEBUF)
self._running = True
def on_event(self, event):
if event.type == pygame.QUIT:
self._running = False
def on_loop(self):
pass
def on_render(self):
pass
def on_cleanup(self):
pygame.quit()
def on_execute(self):
if self.on_init() == False:
self._running = False
while( self._running ):
for event in pygame.event.get():
self.on_event(event)
self.on_loop()
self.on_render()
self.on_cleanup()
if __name__ == "__main__" :
theApp = App()
theApp.on_execute()
Метод класса on_execute
сначала вызывает *Метод 1008 *, в котором инициализируется pygame и устанавливается режим отображения, затем выполняется цикл обработки событий, когда события pygame обрабатываются и отображается текущий кадр.
Только если событие pygame.QUIT
перехватывает цикл обработки событийзакрывается и pygame.quit()
вызывается для очистки среды pygame.Затем также приложения заканчиваются.
Если это не помогает поделиться сообщением о сбое.Поэтому попробуйте выполнить ваш код из командной строки.