如何使 python/pygame 中的所有脚本都可以访问 "screen" 变量

How to make the "screen" variable accessible to all scripts in python/pygame

我正在 python 2 和 pygame 中制作自己的 UI。我的主脚本在 pygame.

中为渲染表面创建“屏幕”变量

我怎样才能让其他 python 脚本访问并呈现在另一个脚本的表面上?

您可以通过将 screen 变量作为参数传递给您的扩展模块的任何调用来达到预期的效果。最简单的方法是将模块设计为 类,其 __init__ 方法接受要呈现的屏幕:

#extension1.py
class Main(whatever_base_class):
    def __init__(self, screen, *args, **kwargs):
        self.screen = screen
        ...
    def Draw(self):
        #use self.screen to draw on screen.

从你的主脚本:

from extension1 import Main

#define screen somehow
ext1 = Main(screen, ...)
ext1.Draw()

如果您不能或不想在扩展中强制使用 __init__ 的 creation/modification,您可以依赖 def setup(screen) 方法或直接传递screen 变量到 Draw 方法。