pygame显示窗口立即打开和关闭

时间:2018-12-27 10:01:20

标签: python pygame pycharm

我在尝试使Pygame库在我的Pycharm IDE上运行时遇到问题。即使有了这些代码,Pygame似乎在调用窗口显示后立即崩溃。我知道这个问题在代码语法错误中很常见,但是即使使用这3条简单的代码行,它仍然对我崩溃。

import pygame
pygame.init()
win = pygame.display.set_mode((500,500))

1 个答案:

答案 0 :(得分:1)

您需要一个事件循环,否则应用程序将立即关闭。

请看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首先调用on_init方法,在其中初始化pygame并设置显示模式,然后执行事件循环,处理pygame事件并呈现当前帧。 / p>

仅当捕获到pygame.QUIT事件时,事件循环才会退出,并调用pygame.quit()来清理pygame环境。然后应用程序也结束。

如果这不能帮助您共享崩溃消息。因此,请尝试从命令行执行代码。