为什么我的程序无法删除多次加载的同一张图像?
Imagea = pygame.image.load('imagea.png')
Imageb = pygame.image.load('imageb.png')
游戏内循环
deck = abaa
for i in deck:
for position in positions:
if(i) == deck[0]:
if(i == a):
gamedisplay.blit(imagea, positions[0])
elif(i == b):
gamedisplay.blit(imageb, positions[0])
if(i) == deck[1]:
if(i == a):
gamedisplay.blit(imagea, positions[1])
elif(i == b):
gamedisplay.blit(imageb, positions[1])
if(i) == deck[2]:
if(i == a):
gamedisplay.blit(imagea, positions[2])
elif(i == b):
gamedisplay.blit(imageb, positions[2])
if(i) == deck[3]:
if(i == a):
gamedisplay.blit(imagea, positions[3])
elif(i == b):
gamedisplay.blit(imageb, positions[3])
似乎发生的是只有卡座0和卡座1显示imagea和imageb。但是,甲板2和3不会出现在位置[2]或位置[3]。
deck
是列表,i
是列表的元素。当然,不必评估是否是列表的元素。这个评估是问题。请注意,如果i
在deck
中是多次(例如,在索引0和2处),则不会评估ifi == deck[2]:
,因为首先会评估ifi == deck[o]:
。 下面,我假设True
和deck
具有相同数量的元素。
要么使用position
遍历enumerate
并获得包含元素索引和元素本身的元组:
enumerate
或使用deck
同时遍历for i, d in enumerate(deck): p = positions[i] if d == a: gamedisplay.blit(imagea, p) elif d == b: gamedisplay.blit(imageb, p)
和zip
:
zip