File size: 1,701 Bytes
a3e5f70 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | from settings import *
from os.path import join
from os import walk
from pytmx.util_pygame import load_pygame
# imports
def import_image(*path, alpha = True, format = 'png'):
full_path = join(*path) + f'.{format}'
surf = pygame.image.load(full_path).convert_alpha() if alpha else pygame.image.load(full_path).convert()
return surf
def import_folder(*path):
frames = []
for folder_path, sub_folders, image_names in walk(join(*path)):
for image_name in sorted(image_names, key = lambda name: int(name.split('.')[0])):
full_path = join(folder_path, image_name)
surf = pygame.image.load(full_path).convert_alpha()
frames.append(surf)
return frames
def import_folder_dict(*path):
frames = {}
for folder_path, sub_folders, image_names in walk(join(*path)):
for image_name in image_names:
full_path = join(folder_path, image_name)
surf = pygame.image.load(full_path).convert_alpha()
frames[image_name.split('.')[0]] = surf
return frames
def import_sub_folders(*path):
frames = {}
for _, sub_folders, __ in walk(join(*path)):
if sub_folders:
for sub_folder in sub_folders:
frames[sub_folder] = import_folder(*path, sub_folder)
return frames
def import_tilemap(cols, rows, *path):
frames = {}
surf = import_image(*path)
cell_width, cell_height = surf.get_width() / cols, surf.get_height() / rows
for col in range(cols):
for row in range(rows):
cutout_rect = pygame.Rect(col * cell_width, row * cell_height,cell_width,cell_height)
cutout_surf = pygame.Surface((cell_width, cell_height))
cutout_surf.fill('green')
cutout_surf.set_colorkey('green')
cutout_surf.blit(surf, (0,0), cutout_rect)
frames[(col, row)] = cutout_surf
return frames
|