我在试图掌握py游戏代码中的一些内容时遇到了麻烦,首先为什么有两种类型的退出或者它们是否相同?例如:
pygame.QUIT
pygame.quit()
此外,我无法完全掌握这一小块代码:
for event in pygame.event.get():
if event.type == pygame.QUIT:
我理解第一行代码,但我不理解event.type ?, .type
是pygame或python中的函数吗?它做了什么?
答案 0 :(得分:2)
pygame.QUIT
是输入的枚举,表示程序退出
pygame.quit()
是一个函数调用卸载pygame模块。根据文件,它实际上不会退出游戏: http://www.pygame.org/docs/ref/pygame.html#pygame.quit 您可以使用sys.exit(0)。
这个循环在这里:
for event in pygame.event.get():
if event.type == pygame.QUIT:
检查每个事件,如果其中一个事件的值为pygame.QUIT,则应遵循一些退出代码。
答案 1 :(得分:1)
pygame.QUIT
只是一个常量,而pygame.quit()
是pygame
模块中未初始化它的函数。代码片段:
for event in pygame.event.get():
if event.type == pygame.QUIT:
...
是pygame
程序的典型控制循环的一部分。方法pygame.event.get()
返回下一个事件。如果事件的类型(事件对象的属性)是pygame.QUIT
,那么应用程序应该执行退出所需的操作,包括可能调用pygame.quit()
。
答案 2 :(得分:-1)
pygame.quit()手册说:
取消初始化之前已初始化的所有pygame模块。当Python解释器关闭时,无论如何调用此方法,因此您的程序不应该需要它,除非它想要终止其pygame资源并继续。
所以你通常应该自己调用这个方法。
pygame.QUIT是一种所谓的事件类型。 Pygame使用事件来告诉你发生的事情。代码检查队列中的每个事件,并检查是否发生了QUIT事件。
event.type
来自pygame,它告诉你它是什么类型的事件。通过将其与pygame.QUIT
进行比较,您可以检查是否已调用quit()
方法,并采取措施关闭游戏。