我读过/看过的每本pygame教程都说过要在考虑做其他事情之前将pygame.init()压缩到您的代码中。显然,它会初始化pygame模块或类似的东西。
直到我想到从代码中删除“ pygame.init()”行,只是为了看看会发生什么。瞧,我的游戏完全一样。
我上网了,每到一个地方,我都会被告知'pygame.init()'是必要的。但是不,显然不是,因为我只是从我的代码中删除了它,效果很好。
所以,不用说,我很困惑。如果有人解释,我将不胜感激。
a)pygame.init()的功能
b)pygame程序中是否需要它。 如果是的话,为什么我的游戏能正常工作 如果不是,那么什么时候需要?
c)您认为我应该知道的其他事情
答案 0 :(得分:3)
pygame.init() 初始化所有导入的pygame模块。如果模块发生故障,则不会引发异常,但是如果成功和失败的初始化总数将作为元组返回。您总是可以手动初始化单个模块,但是pygame.init()初始化所有导入的pygame模块是一种开始一切的便捷方法。各个模块的init()函数在失败时会引发异常。
此外,在这里我们可以看到一开始就很安全:
多次调用此init()是安全的,因为重复调用无效。即使您拥有pygame.quit()所有模块,也是如此。
最后,我认为为什么总是在开始时使用它的主要原因:
这将尝试为您初始化所有pygame模块。并非所有pygame模块都需要初始化,但这会自动初始化那些模块。
因此,主要结论是pygame.init()
安全地初始化了所有导入的pygame模块,无论模块是否实际需要初始化;但是,由于这样做的确有用,因此省去了手动手动初始化每个模块的麻烦。