gpt4 book ai didi

python - 与python全局变量混淆,pygame事件

转载 作者:行者123 更新时间:2023-11-28 16:31:38 25 4
gpt4 key购买 nike

我已经阅读了关于该主题的其他几个问题,但我似乎仍然没有让 python 全局变量起作用。

我有三个文件:main.py、menu.py 和 game.py。

menu.py 包含一个由 main 执行的菜单函数; main 的主循环有一个“运行”变量,我希望其他文件中的函数能够将其设置为 0 以退出游戏。

但是我无法让它工作;例如,如果我这样做:

菜单.py

...
class gameMenu():
def __init__(self, screen, background):
#self.event = event
global running

...
running = 0

主要.py

...
from menu import *
...
global running
running = 1

title = gameMenu(screen, background)
title.run()
...
print running

但是,main 总是会打印 1。如何获取菜单来修改 main 中的运行变量?

此外,在菜单循环中我有这个功能:

for e in pygame.event.get():

if e.type == pygame.QUIT:
print 'Close!'
self.isRunning = 0
running = 0

if e.type == pygame.JOYBUTTONDOWN:
print 'Button Down!'
self.isRunning = 0

这段代码在另一个程序中运行良好,但在这个程序中,第二个 if 从未被执行,老实说我不明白为什么。

如果您需要完整代码,请在此处:http://dumptext.com/KuwcaWpH

感谢您的帮助。

最佳答案

在您的代码中,您无法将全局变量 runningmain.py 导入到 menu.py 中。当你这样做时 -

if e.type == pygame.QUIT:
print 'Close!'
self.isRunning = 0
running = 0

您只是将本地名称(变量)设置为 0 ,这不会影响 main.py 中的 running 变量。您可能希望将以下行添加到函数的开头 - def run(self):

def run(self):
global running
self.isRunning = 1

此外,您似乎在 main.py 中定义了 running = 1 ,这可能会影响您要导入的 running 全局变量来自 menu.py 。尝试删除该行。或者最好的办法是 -

import menu

然后访问全局变量为 - menu.running

关于python - 与python全局变量混淆,pygame事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31312808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com