Search code examples
pythonpygamesprite

How can I scale every image in a list?


Im having trouble on scaling every image in this list using a for loop, when I run it no scaling occurs. This is my list and my for loop:

self.pokemon = [ pygame.image.load('/Users/gersh/PycharmProjects/snakeeo/venv/lib/resources/pokemon/bulbasaur.png').convert(), pygame.image.load('/Users/gersh/PycharmProjects/snakeeo/venv/lib/resources/pokemon/caterpie.png').convert(), pygame.image.load('/Users/gersh/PycharmProjects/snakeeo/venv/lib/resources/pokemon/charmander.png').convert(), pygame.image.load('/Users/gersh/PycharmProjects/snakeeo/venv/lib/resources/pokemon/pidgey.png').convert(), pygame.image.load('/Users/gersh/PycharmProjects/snakeeo/venv/lib/resources/pokemon/squirtle.png').convert()

def set_colorkey(self):
    for pokemon in self.pokemon:
        pokemon.set_colorkey((0,0,0))
        pygame.transform.scale(pokemon, (120,120))

                    ]

Solution

  • pygame.transform.scale does not scale the image itself, but returns a new scaled image:

    for i in range(len(self.pokemon)):
        image = self.pokemon[i]
        image.set_colorkey((0,0,0))
        self.pokemon[i] = pygame.transform.scale(image, (120,120))