2017-11-11 97 views
1

我目前正在尝试开发一个心理学实验,其中包含150张.tif图片,需要每次试验显示0.5秒,全屏,在听到噪音之后。每个图像至少需要呈现一次才能再次呈现。我正在pygame中完成我的实验。Pygame:如何加载150张图片,并且每张图片仅显示0.5秒每次试验

我一直在考虑将所有图像保存到一个目录中,然后逐个将它们逐一拉出。这似乎是一个好主意吗?

我对编程非常陌生,希望对类似问题有任何帮助/链接。如果我错过了任何相关信息,请告诉我。

谢谢!

+0

欢迎来到Stack Overflow。请一次只询问一个具体问题,并尝试先自己解决问题,然后告诉我们什么不起作用。看看[帮助中心](https://stackoverflow.com/help/how-to-ask)和[此清单](https://meta.stackoverflow.com/q/260648/6220679)。 – skrx

回答

0
  1. 使用glob模块,让您的图像文件名列表:https://pymotw.com/3/glob/index.html

  2. 遍历文件名的这份名单中,有pygame.image.load加载它们,并将所得图像/ pygame.Surface小号追加到列表中。

  3. 将该列表乱序排列,创建一个索引变量(index = 0),并将当前索引处的图像分配给另一个变量,例如, current_image = image_list[index]

  4. 使用计时器变量来增加索引并在所需的时间间隔check out the pygame.time.get_ticks, set_timer or delta time solutions here之后交换图像。

  5. 如果索引是>=列表的长度,请将其重置为0并重新洗牌。

+0

谢谢SOOOO多!!!! –

+0

嗨,我一直在试图按照你的建议尽我所能,但我卡在第2步。这是我的代码: 'import pygame,glob types =('* .tif') artfile_names = [] 的文件中的类型: artfile_names.extend(glob.glob(文件)) 打印(artfile_names) 艺术品在artfile_names: pygame.image.load(STR(artfile_names))' 但它给出了无法打开我的文件的错误。你能给出一个理由为什么? –