如何缩放列表中的每个图像?皮加姆



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

我真的想不通。每当我尝试时,都会出现一个错误,说我正在转换的项目是 str 或布尔值,我需要一个表面来处理。我知道我正在做的事情是错误的,但尝试并没有受到伤害,我不知道如何处理这个问题。我是一名业余程序员,只需要一点帮助。

相关和最新的代码:

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)))

看看这是否有效。

最新更新