如何缩放列表中的每个图像? pygame

How to scale every image in a list? pygame

如何缩放 pygame 列表中的每张图片?

我真的想不通。每当我尝试时,都会出现一个错误,提示我是 transform.scaling 的项目是一个 str 或一个 bool,我需要一个表面来处理。我知道我在做什么是错误的,但尝试并没有什么坏处,而且我不知道如何处理这个问题。我是一名业余程序员,只需要一点帮助。

相关的最新代码:

rain_imgs = []
rain_list = ["1.png", "mv.png", "b1.png", "b3.png", "b4.png", "b5.png"]
for img in rain_list:
    rain_imgs.append(pg.image.load(path.join(img_folder, img)).convert())
    pg.transform.scale(img in rain_list, (60, 60))

错误:

TypeError: argument 1 must be pygame.Surface, not bool

我看到你正在尝试使用

pg.transform.scale(img in rain_list, (60, 60))

引用您刚刚放入列表中的项目。 不幸的是,单独使用 'in' 关键字只会告诉您该项目是否存在于指定的数组中,这就是错误的来源。 你可能想要做的看起来像:

for img in rain_list:
  img_item = pg.image.load(path.join(img_folder, img)).convert()
  pg.transform.scale(img_item, (60, 60))
  rain_imgs.append(img_item)

无需将项目从列表中拉回以更改它,而是创建一个本地对象,更改其功能,然后存储它,而不会出现布尔错误。

====编辑===

因为它现在附加原始图像,所以告诉我

pg.transform.scale(img_item, (60, 60))

可能会返回一个新对象,而不是 运行 对所提供对象的改动。 我会尝试类似的东西:

for img in rain_list:
  img_item = pg.image.load(path.join(img_folder, img)).convert()
  rain_imgs.append(pg.transform.scale(img_item, (60, 60)))

看看是否可行。