2016-06-07 179 views
1

嗨我的程序中有多个图像。我希望在屏幕上随机显示它们。我试图通过将图像放入列表中,然后为它们选择随机位置。但是,当我为图片分配变量并将其添加到列表中时,它不起作用。下面是一个例子。如何将图像添加到列表中

room1 = pygame.image.load("room1.png").convert() 
room_list = [] 
room_list.append(room1) 

然后某处主循环后,我做的

for i in range(0,100): 
    positionx = random.randrange(0,400) 
    positiony = random.randrange(0,400) 
    position = [positionx,positiony] 
    x = random.randrange(room_list) 
    screen.blit(x,position) 

当我运行此,错误的是,它必须是一个INT不是一个字符串。

顺便提一下,room_list中有多个图像。

感谢您的帮助,您可以提供:)

+1

最佳做法是在提问时将错误跟踪与代码一起发布。 – wwii

+0

你的错误信息是什么,像int()参数必须是一个字符串?因为'randrange()'想要一个整数而不是一个列表。检查'randrange()'的文档:) – Torxed

+0

是的确实是 – abc1234

回答

1

按照randrange文档,该功能不随机从列表中选择一个元素,而是返回从一定范围内的随机整数。

调用它的方式是:x = room_list[random.randrange(len(room_list))

或者,更接近您的问题,您可以使用choice函数,如下所示:x = random.choice(room_list)

+0

噢好吧生病了。 – abc1234

+0

所以,如果我使用random.choice它只会选择图片 – abc1234

+0

好吧,它的工作感谢 – abc1234