如何使 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
方法。
我正在 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
方法。