pygame.init() 何时需要使用?

7

我正在学习Pygame,绝大多数教程中都提到,在进行任何操作之前都应该运行pygame.init()。然而在某个特定的教程中,我发现在示例代码中并没有pygame.init()或其他模块的明确初始化。

例如,下面的代码(至少对我来说)可以正常工作,而没有出现任何问题:

import pygame

screen = pygame.display.set_mode((600, 400))

while True:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            raise SystemExit

想知道在运行pygame.init()时会初始化哪些内容,以及在不运行pygame.init()时会初始化哪些内容。

2个回答

1
这将尝试为您初始化所有pygame模块。并非所有pygame模块都需要初始化,但这将自动初始化需要的模块。

http://www.pygame.org/docs/tut/ImportInit.html

我不知道哪些模块必须初始化,但看起来displayevent不属于这个类别。我建议您进行初始化,因为可能有些模块可以在未初始化的情况下工作,但它们的工作方式可能不同或者会缺少一些重要的东西。

0

您可以通过以下方式检查模块数量:

numpass, numfail = pygame.init()

pygame.init() 将初始化例如 joystickfontmixer 模块。 scrap 模块将需要单独的 init。 而 midi 模块将需要单独的 init 和 import。

pygame.init()

print(pygame.font.get_init())  # True
print(pygame.joystick.get_init())  # True
print(pygame.scrap.get_init())  # False
print(pygame.midi.get_init())  # AttributeError

关于midi:

import pygame.midi

pygame.midi.init()
print(pygame.midi.get_init())  # True

用于废料:

pygame.scrap.init()
print(pygame.scrap.get_init())  # True

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接