问题描述
这是我迄今为止尝试过的代码,
filesList = [x for x in os.listdir(".\\images")]
fileNames = [x.split(".")[0] for x in os.listdir(".\\images")]
itemsDict = {k: v for k,v in zip(filesList,fileNames)}
itemList = list(itemsDict.keys())
shuffle(itemList)
for item in itemList:
image = pygame.image.load(item)
#Game Loop
running = True
while running:
# Background Image
screen.blit(background,(0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit(0)
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
running = False
每次我打破游戏循环加载下一张图片时。而且我不想在 Class(sprite) 中使用 random.choice 或选择,基于按键更新图像(以避免重复图像)。
寻找解决方案,例如在不中断循环的情况下,让精灵类在按键时从文件夹中一个一个地更新图像(如果 event.key == pygame.K_SPACE :)
解决方法
我认为您不应该在 foreach 循环中运行多个 while 循环,而是创建一个图像对象,您可以在其中保存当前图像,然后在按键时将该图像更改为下一个图像。
要获得下一张图像,您可以使用一些索引变量并将其计数