diff --git a/common/constants.py b/common/constants.py index 785bb05..504e852 100644 --- a/common/constants.py +++ b/common/constants.py @@ -17,6 +17,10 @@ MONSTER_SPAWN_WIDTH = 19 MONSTER_SPAWN_HEIGHT = 15 MONSTER_SPAWN_FIRST_COL = 4 MONSTER_SPAWN_FIRST_ROW = 0 +CASTLE_SPAWN_WIDTH = 6 +CASTLE_SPAWN_HEIGHT = 5 +CASTLE_SPAWN_FIRST_ROW = 7 +CASTLE_SPAWN_FIRST_COL = 9 TILES = [ 'grass1.png', 'grass2.png', diff --git a/logic/game.py b/logic/game.py index 1ce9d08..11e6f3c 100644 --- a/logic/game.py +++ b/logic/game.py @@ -3,10 +3,9 @@ import sys import pygame from common.colors import FONT_DARK, WHITE -from common.constants import GAME_TITLE, WINDOW_WIDTH, WINDOW_HEIGHT, FPS_COUNT, TILES, COLUMNS, KNIGHTS_SPAWN_WIDTH, \ - KNIGHTS_SPAWN_FIRST_ROW, KNIGHTS_SPAWN_HEIGHT, KNIGHTS_SPAWN_FIRST_COL, MONSTER_SPAWN_WIDTH, MONSTER_SPAWN_HEIGHT, \ - MONSTER_SPAWN_FIRST_COL, MONSTER_SPAWN_FIRST_ROW +from common.constants import * from common.helpers import draw_text +from models.castle import Castle from models.knight import Knight from models.monster import Monster from ui.logs import Logs @@ -90,6 +89,7 @@ class Game: knights_sprite_group = pygame.sprite.Group() monsters_sprite_group = pygame.sprite.Group() + castle_sprite_group = pygame.sprite.Group() knights_left = self.generate_knights_team(knights_sprite_group) knights_right = self.generate_knights_team(knights_sprite_group) @@ -104,12 +104,17 @@ class Game: spawn_right_team.spawn() spawned_monsters = self.generate_monster(monsters_sprite_group) - monster_spawn = Spawner(grid, spawned_monsters, width=MONSTER_SPAWN_WIDTH, height=MONSTER_SPAWN_HEIGHT, - pos_row = MONSTER_SPAWN_FIRST_ROW, pos_column=MONSTER_SPAWN_FIRST_COL) + pos_row=MONSTER_SPAWN_FIRST_ROW, pos_column=MONSTER_SPAWN_FIRST_COL) monster_spawn.spawn_monsters() + spawned_castle = self.generate_castle(castle_sprite_group) + castle_spawn = Spawner(grid, [spawned_castle], width=CASTLE_SPAWN_WIDTH, height=CASTLE_SPAWN_HEIGHT, + pos_row=CASTLE_SPAWN_FIRST_ROW, pos_column=CASTLE_SPAWN_FIRST_COL) + + castle_spawn.spawn() + while running: self.screen.blit(self.bg, (0, 0)) @@ -127,6 +132,7 @@ class Game: knights_sprite_group.draw(self.screen) monsters_sprite_group.draw(self.screen) + castle_sprite_group.draw(self.screen) pygame.display.update() self.clock.tick(FPS_COUNT) @@ -147,3 +153,9 @@ class Game: monsters.append(monster) monsters_sprite_group.add(monster) return monsters + + @staticmethod + def generate_castle(castle_sprite_group): + castle = Castle() + castle_sprite_group.add(castle) + return castle diff --git a/models/castle.py b/models/castle.py new file mode 100644 index 0000000..5c0b4af --- /dev/null +++ b/models/castle.py @@ -0,0 +1,15 @@ +import pygame.image + + +class Castle(pygame.sprite.Sprite): + images = [] + + def __init__(self): + super().__init__() + + self.image = pygame.image.load("./resources/textures/castle.png") + self.image = pygame.transform.scale(self.image, (78, 78)) + self.images.append(self.image) + self.rect = self.image.get_rect() + castle_list = pygame.sprite.Group() + self.health = 80 diff --git a/resources/textures/castle.png b/resources/textures/castle.png new file mode 100644 index 0000000..862e98f Binary files /dev/null and b/resources/textures/castle.png differ