如何在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
答案 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)))
看看是否有效。