#i need help with pygame. i feel like ive tried everything

1 messages · Page 1 of 1 (latest)

vale ravine
#

TypeError: can't multiply sequence by non-int of type 'pygame.math.Vector2'

def get_layer_array(self):
        sprite_sheet = pg.image.load(self.attrs['path']).convert_alpha()
        
        sprite_sheet = pg.transform.scale(sprite_sheet, vec2(sprite_sheet.get_size()) * self.attrs['scale'])

        sheet_width = sprite_sheet.get_width()
        sheet_height = sprite_sheet.get_height()
        sprite_height = sheet_height // self.attrs['layers']

        sheet_height = sprite_height * self.attrs['layers']

        layer_array = []
        for y in range(0, sheet_height, sprite_height):
            sprite = sprite_sheet.subsurface((0, y, sheet_height, sprite_height))
            layer_array.append(sprite)
        return layer_array[::-1]```
queen plover
#

Try changing your:
vec2(sprite_sheet.get_size())
With:
int(vec2(sprite_sheet.get_size()))
.
Says you can't perform multiplication on a non int (your vec). So try turning it into an int before the operation

#

Let me know if that helps

vale ravine
#

I tried that but I did vec2(int(sprite_sheet.get_size())) instead. So I’ve been doing it backwards and wondering what the problem was for 3 hours😐

#

Thanks for the help