請原諒,如果之前已經詢問過,但我無法弄清楚爲什麼這不起作用。我已經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