refactor: file structure and cleanup

This commit is contained in:
korzepadawid 2022-03-11 19:42:17 +01:00
parent c39aba8c30
commit 190b2bec01
16 changed files with 49 additions and 53 deletions

0
common/__init__.py Normal file
View File

0
logic/__init__.py Normal file
View File

View File

@ -1,22 +1,23 @@
import pygame
import sys import sys
from colors import FONT_DARK, WHITE import pygame
from constants import GAME_TITLE, WINDOW_WIDTH, WINDOW_HEIGHT, FPS_COUNT, TILES
from grid import Grid from common.colors import FONT_DARK, WHITE
from helpers import draw_text from common.constants import GAME_TITLE, WINDOW_WIDTH, WINDOW_HEIGHT, FPS_COUNT, TILES
from logs import Logs from common.helpers import draw_text
from stats import Stats from models.knight import Knight
from knight import Knight from models.monster import Monster
from monster import Monster from ui.logs import Logs
from spawner import Spawner from ui.stats import Stats
from .grid import Grid
from .spawner import Spawner
class Game: class Game:
def __init__(self): def __init__(self):
pygame.init() pygame.init()
pygame.display.set_caption(GAME_TITLE) pygame.display.set_caption(GAME_TITLE)
pygame.display.set_icon(pygame.image.load('resources/icons/sword.png')) pygame.display.set_icon(pygame.image.load('./resources/icons/sword.png'))
self.screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) self.screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
self.clock = pygame.time.Clock() self.clock = pygame.time.Clock()
@ -26,7 +27,7 @@ class Game:
converted_tile = pygame.image.load('resources/textures/' + tile_path).convert_alpha() converted_tile = pygame.image.load('resources/textures/' + tile_path).convert_alpha()
self.tiles.append((tile_path, converted_tile)) self.tiles.append((tile_path, converted_tile))
self.bg = pygame.image.load("resources/textures/bg.jpg") self.bg = pygame.image.load("./resources/textures/bg.jpg")
click = False click = False
@ -113,15 +114,14 @@ class Game:
grid = Grid(self.tiles) grid = Grid(self.tiles)
stats = Stats() stats = Stats()
logs = Logs() logs = Logs()
knight1 = Knight("/resources/textures/knight.png") knight1 = Knight("./resources/textures/knight.png")
knight2 = Knight("/resources/textures/knight.png") knight2 = Knight("./resources/textures/knight.png")
spawn = Spawner(grid, [knight1, knight2], 4, 5, 8, 0) spawn = Spawner(grid, [knight1, knight2], 4, 5, 8, 0)
spawn.spawn() spawn.spawn()
knights_list = pygame.sprite.Group() knights_list = pygame.sprite.Group()
knights_list.add(knight1) knights_list.add(knight1)
knights_list.add(knight2) knights_list.add(knight2)
while running: while running:
self.screen.blit(self.bg, (0, 0)) self.screen.blit(self.bg, (0, 0))
@ -138,7 +138,7 @@ class Game:
logs.draw(self.screen) logs.draw(self.screen)
knights_list.draw(self.screen) knights_list.draw(self.screen)
monster1 = Monster(self.screen, "/resources/textures/dragon.png") monster1 = Monster(self.screen, "./resources/textures/dragon.png")
monster_list = pygame.sprite.Group() monster_list = pygame.sprite.Group()
monster_list.add(monster1) monster_list.add(monster1)
pygame.display.update() pygame.display.update()

View File

@ -1,8 +1,10 @@
import pygame
import random import random
from field import Field
from constants import ROWS, COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT, BORDER_WIDTH, BORDER_RADIUS import pygame
from common.constants import ROWS, COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT, BORDER_WIDTH, \
BORDER_RADIUS
from .field import Field
class Grid: class Grid:
@ -33,4 +35,3 @@ class Grid:
GRID_CELL_HEIGHT] GRID_CELL_HEIGHT]
image = self.grid[row][column].converted_texture image = self.grid[row][column].converted_texture
screen.blit(pygame.transform.scale(image, (GRID_CELL_WIDTH, GRID_CELL_HEIGHT)), box_rect) screen.blit(pygame.transform.scale(image, (GRID_CELL_WIDTH, GRID_CELL_HEIGHT)), box_rect)

View File

@ -1,6 +1,7 @@
from constants import ROWS, COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT, BORDER_WIDTH, BORDER_RADIUS
import random import random
from common.constants import GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT
class Spawner: class Spawner:
def __init__(self, grid, objs_to_spawn_list: list, width, height, pos_row, pos_column): def __init__(self, grid, objs_to_spawn_list: list, width, height, pos_row, pos_column):
@ -20,9 +21,8 @@ class Spawner:
(GRID_CELL_PADDING + GRID_CELL_HEIGHT) * row + GRID_CELL_PADDING + 7]) (GRID_CELL_PADDING + GRID_CELL_HEIGHT) * row + GRID_CELL_PADDING + 7])
for obj in self.objs_to_spawn_list: for obj in self.objs_to_spawn_list:
random_tile = random.randint(0, len(coords)-1) random_tile = random.randint(0, len(coords) - 1)
obj.rect.x = coords[random_tile][0] obj.rect.x = coords[random_tile][0]
obj.rect.y = coords[random_tile][1] obj.rect.y = coords[random_tile][1]
coords.pop(random_tile) coords.pop(random_tile)
obj.update() obj.update()

View File

@ -1,4 +1,4 @@
from game import Game from logic.game import Game
if __name__ == '__main__': if __name__ == '__main__':
game = Game() game = Game()

0
models/__init__.py Normal file
View File

View File

@ -1,17 +1,13 @@
import pygame.image import pygame.image
from constants import ROWS, COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT, BORDER_WIDTH, BORDER_RADIUS, \
WINDOW_WIDTH, WINDOW_HEIGHT
class Knight(pygame.sprite.Sprite): class Knight(pygame.sprite.Sprite):
def __init__(self, img): def __init__(self, img):
super().__init__() super().__init__()
self.images = [] self.images = []
self.image = pygame.image.load("resources/textures/knight.png") self.image = pygame.image.load("./resources/textures/knight.png")
self.image = pygame.transform.scale(self.image, (40, 40)) self.image = pygame.transform.scale(self.image, (40, 40))
self.images.append(self.image) self.images.append(self.image)
self.rect = self.image.get_rect() self.rect = self.image.get_rect()
knights_list = pygame.sprite.Group() knights_list = pygame.sprite.Group()

View File

@ -1,5 +1,4 @@
import pygame.image import pygame.image
import random
class Monster(pygame.sprite.Sprite): class Monster(pygame.sprite.Sprite):
@ -7,7 +6,7 @@ class Monster(pygame.sprite.Sprite):
def __init__(self, screen, img): def __init__(self, screen, img):
super().__init__() super().__init__()
self.images = [] self.images = []
self.image = pygame.image.load("resources/textures/dragon.png") self.image = pygame.image.load("./resources/textures/dragon.png")
self.image = pygame.transform.scale(self.image, (40, 40)) self.image = pygame.transform.scale(self.image, (40, 40))
self.images.append(self.image) self.images.append(self.image)
self.rect = self.image.get_rect() self.rect = self.image.get_rect()

0
ui/__init__.py Normal file
View File

View File

@ -1,8 +1,8 @@
import pygame import pygame
from colors import FONT_DARK, ORANGE, WHITE, RED from common.colors import FONT_DARK, ORANGE, WHITE
from constants import COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, BORDER_WIDTH, BORDER_RADIUS from common.constants import COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, BORDER_WIDTH, BORDER_RADIUS
from helpers import draw_text from common.helpers import draw_text
class Logs: class Logs:

View File

@ -1,8 +1,8 @@
import pygame import pygame
from colors import FONT_DARK, ORANGE, WHITE, RED from common.colors import FONT_DARK, ORANGE, WHITE, RED
from constants import COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, BORDER_WIDTH, BORDER_RADIUS from common.constants import COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, BORDER_WIDTH, BORDER_RADIUS
from helpers import draw_text from common.helpers import draw_text
class Stats: class Stats:
@ -21,8 +21,8 @@ class Stats:
pygame.draw.rect(screen, ORANGE, pygame.Rect(x, y + 65, 340, 3)) pygame.draw.rect(screen, ORANGE, pygame.Rect(x, y + 65, 340, 3))
# shields # shields
shield_blue = pygame.image.load('resources/textures/shield_blue.png') shield_blue = pygame.image.load('./resources/textures/shield_blue.png')
shield_red = pygame.image.load('resources/textures/shield_red.png') shield_red = pygame.image.load('./resources/textures/shield_red.png')
screen.blit(shield_blue, (x + 20, y + 80)) screen.blit(shield_blue, (x + 20, y + 80))
screen.blit(shield_red, (x + 200, y + 80)) screen.blit(shield_red, (x + 200, y + 80))
draw_text('VS', FONT_DARK, screen, x + 150, y + 120, 36) draw_text('VS', FONT_DARK, screen, x + 150, y + 120, 36)