Python pygame多次对同一图像执行blit操作

Python pygame多次对同一图像执行blit操作,python,pygame,surface,blit,imagesloaded,Python,Pygame,Surface,Blit,Imagesloaded,为什么我的程序不能多次加载相同的图像 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,

为什么我的程序不能多次加载相同的图像

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]
数据组
是一个列表,
i
是列表的一个元素。如果是列表中的一个元素,则无需对其进行评估,当然是。这一评估就是问题所在。 注意,如果
i
deck
中多次出现(例如,在索引0和2处),那么
如果i==deck[2]:
永远不会被计算,因为
如果i==deck[o]:
首先被计算
True

在下面,我假设
deck
position
具有相同数量的元素

使用遍历
deck
并获取包含元素索引和元素本身的元组:

用于枚举中的i,d(组):
p=位置[i]
如果d==a:
gamedisplay.blit(图像a,p)
elif d==b:
gamedisplay.blit(imageb,p)
或用于同时遍历
甲板
位置

用于拉链中的d、p(甲板、位置):
如果d==a:
gamedisplay.blit(图像a,p)
elif d==b:
gamedisplay.blit(imageb,p)

@SebiStJohnston问题解决了吗?答案是否可以接受?(勾选答案左侧的mar)。请阅读