请原谅,如果之前已经询问过,但我无法弄清楚为什么这不起作用。我已经Google搜索了好几个小时,为了记录。 我不断收到全局变量错误。我宣布我的全局如此:在函数之外声明全局变量
###Sprites###
global_AB = []
global_AM = []
global_AD = []
global_BB = []
global_CO = []
global_DK = []
global_FB = []
global_O = []
global_R = []
global_SS = []
global_S = []
global_WU = []
但是,当我访问它的函数内(在它已经被该功能设置)
#Loads all of the sprites and backgrounds, I recommend you close this if looking at the code.
def loadImages():
for i in range(0, (len(spriteNames) - 1)):
for z in range(0, numSprites[i]):
if i == 0:
AB.append(pygame.image.load(spriteNames[i] + str(z) + ".png_scaled.png"))
elif i == 1:
AM.append(pygame.image.load(spriteNames[i] + str(z) + ".png_scaled.png"))
elif i == 2:
AD.append(pygame.image.load(spriteNames[i] + str(z) + ".png_scaled.png"))
... 8 more of these
当由块传输图像访问我得到一个错误说这是没有定义(我试图将AB [0]射到表面上),
如果你知道另一种方法,请让我知道。我之前编写过JASS(这就是为什么我用一种简单的方式来声明全局变量),我不知道如何让所有函数中的列表都能被访问。
非常感谢! - Zach
如果你声明了全局变量,你需要使用'global'关键字:'global foo = []' – MattDMo
另外,使用字典比使用类似命名的列表要好得多:'sprites = {“AB”:[],“AM”:[],...}' – MattDMo