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

时间:2017-05-22 03:17:40

标签: python python-3.x pygame pygame-surface

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

我无法弄明白。每当我尝试时,错误都说我正在变换项目.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

1 个答案:

答案 0 :(得分:1)

我看到你正在尝试使用

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

引用您刚刚放入列表中的项目。 不幸的是,'in'关键字在使用solo时只会告诉您该项是否存在于指定数组中,这是错误的来源。 您可能想要做的事情如下:

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

看看是否有效。