import pygame as pg import json from enemy import Enemy from world import World from turret import Turret import constants as c pg.init() clock = pg.time.Clock() screen = pg.display.set_mode((c.SCREEN_W, c.SCREEN_H)) pg.display.set_caption("TD") #Load img lib = ('Tower_Defense') map_image = pg.image.load(f'{lib}/Levels/level.png').convert_alpha() cursor_turret = pg.image.load(f'{lib}/Assets/images/turrets/cursor_turret.png').convert_alpha() enemy_image = pg.image.load("Tower_Defense/Assets/images/enemies/enemy_1.png").convert_alpha() with open(f'{lib}/Levels/level.tmj') as file : world_data = json.load(file) def create_turret(mouse_pos): mouse_tile_x = mouse_pos[0] // c.TILE_SIZE mouse_tile_y = mouse_pos[1] // c.TILE_SIZE mouse_tile_num = (mouse_tile_y * c.COLS) + mouse_tile_x if world.tile_map[mouse_tile_num] == 7: space_is_free = True for turret in turret_group: if (mouse_tile_x, mouse_tile_y) == (turret.tile_x, turret.tile_y): space_is_free = False if space_is_free == True: new_turret = Turret(cursor_turret, mouse_tile_x, mouse_tile_y) turret_group.add(new_turret) world = World(world_data, map_image) world.process_data() enemy = Enemy((world.waypoints), enemy_image) enemy_group = pg.sprite.Group() turret_group = pg.sprite.Group() enemy_group.add(enemy) run = True while run: clock.tick(c.FPS) world.draw(screen) enemy_group.update() enemy_group.draw(screen) turret_group.draw(screen) for event in pg.event.get(): if event.type == pg.QUIT: run = False if event.type == pg.MOUSEBUTTONDOWN and event.button == 1: mouse_pos = pg.mouse.get_pos() if mouse_pos[0] < c.SCREEN_W and mouse_pos[1] < c.SCREEN_H: create_turret(mouse_pos) pg.display.update() pg.quit()