我设置了这个列表,其中有图像(图像是精灵)加载。我试图创建一个循环,它将重新缩放列表中的所有图像。你知道吗
walkLeft = [pygame.image.load('Moving1.png'), pygame.image.load('Moving2.png'), pygame.image.load('Moving3.png'), pygame.image.load('Moving4.png'), pygame.image.load('Moving5.png'), pygame.image.load('Moving6.png'), pygame.image.load('Moving7.png'), pygame.image.load('Moving8.png'), pygame.image.load('Moving9.png')]
walkRight = []
for i in walkLeft:
walkRight.append(pygame.transform.flip(i, True, False))
for x in walkLeft:
pygame.transform.smoothscale(x,(372, 493))
我原以为图像的大小会被调整,但它只是保持不变,我不知道该怎么办。你知道吗
我不确定pygame本身,因为我从来没有使用过它,但我认为问题是
pygame.transform.smoothscale()
不是变革性的x
,它不会改变你输入它的x
,而是输出一个修改过的版本而不修改原始版本。您可以在pygame.transform.flip(i, True, False))
中看到类似的行为—每次迭代,它都会生成一个i
的修改副本,您可以将其附加到walkRight
,但它不会更改您开始使用的i
。你知道吗您可能希望这样做的方式是按索引而不是按元素进行迭代,并在执行时实际替换元素:
您也可以跳过一个步骤,简单地使用列表理解重新创建整个列表,这将使您的脚本总体上更加习惯化:
^{} 无法处理列表。
该方法缩放通过参数传递的图像,并根据返回值返回新的缩放图像。返回值已重新分配给列表。你知道吗
你必须循环进行:
或者:
或在一行中:
pygame.transform.smoothscale返回一个新对象,因此需要将其返回到一个值:
相关问题 更多 >
编程相关推荐