【问题标题】:How to blit a random image from a list Pygame [duplicate]如何从列表 Pygame [重复] 中对随机图像进行 blit
【发布时间】:2016-01-23 19:34:51
【问题描述】:

我想从其他图像列表中随机选择一个图像并对其进行 blit。这是我目前所拥有的一个例子。

Q1 = pygame.image.load("Math/Q1.jpg").convert()
math_list.append(Q1)
Q2 = pygame.image.load("Math/Q2.jpg").convert()
math_list.append(Q2)
Q3 = pygame.image.load("Math/Q3.jpg").convert()
math_list.append(Q3)
Q4 = pygame.image.load("Math/Q4.jpg").convert()
math_list.append(Q4)
Q5 = pygame.image.load("Math/Q5.jpg").convert()
math_list.append(Q5)

这些是我附加到列表math_list 的变量。我现在如何随机选择一张图像,在坐标 (200, 0) 处对其进行 blit,然后确保我不会再次打开该图像。 这与其他任何东西都不一样,因为它并不完全专注于图片。并且没有显示如何在迭代它们后删除 很感谢任何形式的帮助。谢谢:)

【问题讨论】:

  • @Jongware 它不是重复的,因为我已经编辑和解释了:)
  • 您对列表数据的处理完全无关紧要 - 标签 pygame 也是如此。问题是一样的。

标签: python python-3.x pygame


【解决方案1】:

您必须先import random。要选择您的图像,请执行image = math_list.pop(random.randint(0,len(math_list)-1))randint 用于从 0 到 4 中选择一个随机数,每个数对应于列表中的一项。 pop 删除该项目并将其返回给 image

【讨论】:

  • 当我这样做时,我得到以下错误image = math_list.pop(random.randint(0,4)) IndexError: pop index out of range@pydude
  • @AhsenRauf 查看我的编辑。
  • 代码迭代并blits列表中的每一个图像,直到它完成,然后给出一个错误。
  • @AhsenRauf 在随机图像选择器之前使用if len(math_list)>1: ,并缩进该行。
  • @AhsenRauf 我已经解决了你的问题。如果您一次想要他们一个,您应该发布另一个问题。如果我的回答对您的问题有所帮助,请接受我的回答(在投票箭头下方打勾)。
猜你喜欢
  • 2023-03-31
  • 2019-06-28
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 1970-01-01
相关资源
最近更新 更多