f3a5647e5b
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
56 lines
1.5 KiB
Python
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] |