Python 使用pygame显示多个图像

Python 使用pygame显示多个图像,python,pygame,Python,Pygame,因此,我正在使用pygame制作一个记忆游戏,我需要在4×4的网格上显示16幅图像。我用两个for循环创建了4x4网格。我将图像存储在一个列表变量中。到目前为止,使用pygame.image.load()函数,我只能得到一张显示16次的图像。我试着在谷歌上搜索是否有某种循环,我可以从列表中一个接一个地显示这些图像,但我什么也没想到。图像也需要在一个随机的位置,每次玩游戏,我很确定我知道如何做到这一点,我坚持在窗口上显示的图像 非常感谢您的帮助。创建两个图像列表,其中一个仅包含图像位图: # Lo

因此,我正在使用pygame制作一个记忆游戏,我需要在4×4的网格上显示16幅图像。我用两个for循环创建了4x4网格。我将图像存储在一个列表变量中。到目前为止,使用pygame.image.load()函数,我只能得到一张显示16次的图像。我试着在谷歌上搜索是否有某种循环,我可以从列表中一个接一个地显示这些图像,但我什么也没想到。图像也需要在一个随机的位置,每次玩游戏,我很确定我知道如何做到这一点,我坚持在窗口上显示的图像


非常感谢您的帮助。

创建两个图像列表,其中一个仅包含图像位图:

# Load in all the 16 images
memory_images = []
for filename in [ 'flower01.png', 'tree01.png', 'flower02.png', 'duck.png' ... ]
    new_image = pygame.image.load( filename )
    memory_images.append( new_image )
另一个列表可以保存图像索引到位置的映射

import random

# make a list of random numbers with no repeats:
image_count = len( memory_images )  # should be 16 for a 4x4 grid
random_locations = random.sample( range( image_count ), image_count )
random\u locations
变量保存加载图像的索引,这是随机的,但其形式如下:
[7,3,9,0,2,11,12,14,15,1,4,6,8,13,5,10]

因此,在绘制16个单元格时,在单元格
[i]
处绘制
内存图像[随机位置[i]]

for i in range( 16 ):
    x, y = grid_locations[ i ]
    image = memory_images[ random_locations[ i ] ]
    screen.blit( image, ( x, y ) )

如果你发布代码而不是描述代码,这个问题将更容易回答。我在我的图像上运行了你的第一个for循环,程序运行正常,我没有收到任何错误,但是当窗口打开时,它只显示第8个图像16次,而不是不同的图像。我还必须使用random.shuffle()函数可以在程序每次运行时以随机顺序获取图像列表,并且程序只是从左向右读取图像。