Files
pixel_tower_defense/game/util.py
T
ScriptSorcerer f3a5647e5b To much gap between last commit
Im now working next on shoorting for turret

Added new sand map and new cannon tower images aswell as function to play animations, showing range, placing turrets on allowed tiles for towers

Buy and cancel button to buy towers
2026-07-04 23:50:07 +02:00

56 lines
1.5 KiB
Python

import pygame as pg
import os
img_path='assets/images'
WINDOW_SIZE=(800,600)
def load_image(path, colorkey=(0,0,0)):
img = pg.image.load(img_path + path).convert()
img.set_colorkey(colorkey)
return img
def load_images(dir_path):
images = []
for img_name in os.listdir(img_path + dir_path):
images.append(load_image(dir_path + '/' + img_name))
return images
def tile_to_pixel(waypoint, tile_size, center=False):
if center:
return (
waypoint[0] * tile_size + tile_size // 2,
waypoint[1] * tile_size + tile_size // 2
)
else:
return (
waypoint[0] * tile_size,
waypoint[1] * tile_size
)
def pixel_to_tile(waypoint, tile_size):
return (
waypoint[0] / tile_size,
waypoint[1] / tile_size
)
class Animation:
def __init__(self, images, img_dur=5, loop=True):
self.images = images
self.loop = loop
self.img_duration = img_dur
self.done = False
self.frame = 0
def copy(self):
return Animation(self.images, self.img_duration, self.loop)
def update(self):
if self.loop:
self.frame = (self.frame + 1) % (self.img_duration * len(self.images))
else:
self.frame = min(self.frame + 1, self.img_duration * len(self.images))
if self.frame >= self.img_duration * len(self.images) - 1:
self.done = True
def img(self):
return self.images[int(self.frame / self.img_duration) - 1]