diff --git a/.gitignore b/.gitignore index 808386f..d3d07fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .venv/ -__pycache__/ \ No newline at end of file +__pycache__/ +test.spec diff --git a/GameObject.py b/GameObject.py index e96b37f..f5a1758 100644 --- a/GameObject.py +++ b/GameObject.py @@ -1,5 +1,8 @@ import pygame +#Statics +spawned_enemys = list() + class GameObject(object): objects = list() def __init__(self, name, pos_x, pos_y, width, height, image=None) -> None: diff --git a/game.py b/game.py index c964e7f..a64cff6 100644 --- a/game.py +++ b/game.py @@ -5,4 +5,3 @@ import GameObject import pygame -#weapons = dict() \ No newline at end of file diff --git a/levels.py b/levels.py index e69de29..8dee342 100644 --- a/levels.py +++ b/levels.py @@ -0,0 +1,45 @@ +import GameObject +import logger + +levels_list = list() + +class level(object): + id:int = 0 + + def __init__(self, name, size:tuple, num_enemys, spawn_waves) -> None: + self.id += 1 + self.name = name + self.size = size + self.num_enemys = num_enemys + self.spawn_waves = spawn_waves + self._completed = False + + @staticmethod + def load(): + first_level("First Level", (500, 500), 15, 5) + for level in levels_list: + level:dict + print("TEST") + print(level) + for key, object in level.items(): + print(key, object) + + def run(): + + pass + + def __spawn(self): + for wave in range(self.spawn_waves): + print("Spawning wave") + for enemy in range(self.num_enemys): + print("Spawning enemys") + +class first_level(level): + def __init__(self, name, size: tuple, num_enemys, spawn_waves) -> None: + super().__init__(name, size, num_enemys, spawn_waves) + tmp_level = {str(self.id):self} + levels_list.append(tmp_level) + + + + diff --git a/log.txt b/log.txt index e69de29..3b21ff3 100644 --- a/log.txt +++ b/log.txt @@ -0,0 +1,6 @@ +09:58:49: Loading game... +09:58:49: Loading images... +09:58:49: Setup fonts... +09:58:49: Get git revision hash... +09:58:49: Git-Hash: 0bbe702 +09:58:51: Log closed! diff --git a/logg.txt b/logg.txt deleted file mode 100644 index 43b7144..0000000 --- a/logg.txt +++ /dev/null @@ -1 +0,0 @@ -11:33:32: TEST \ No newline at end of file diff --git a/logger.py b/logger.py index 5fcf5f3..af41478 100644 --- a/logger.py +++ b/logger.py @@ -2,19 +2,28 @@ import time class log(object): def __init__(self, logfile:str) -> None: - __logfile = logfile - __filehandle = None + self.__logfile = logfile + self.__filehandle = None - try: - self.__filehandle = open(self.logfile, "w") - except FileExistsError: - print("Datei existiert bereits...") + if(len(self.__logfile) >= 3): + try: + self.__filehandle = open(self.__logfile, "w") + except FileExistsError: + print("Datei existiert bereits...") - except: - print("Something went wrong!") + except: + print("Something went wrong!") + elif(len(self.__logfile) == 0): + print("No logfile!") + + else: + print("Logfile needs to bo longer then 3 digits!") def writeln(self, text:str): - self.__filehandle.writelines(F"{time.strftime("%H:%M:%S")}: {text}") + try: + self.__filehandle.writelines(F"{time.strftime("%H:%M:%S")}: {text} \n") + except: + print("[Log] Something went wrong on write line to logfile!") def __del__(self): self.writeln("Log closed!") diff --git a/test.py b/test.py index 7645909..322ed42 100644 --- a/test.py +++ b/test.py @@ -1,5 +1,6 @@ import pygame import game +import levels import logger import weapons import GameObject @@ -15,9 +16,7 @@ pygame.mouse.set_visible(True) #pygame.key.set_repeat(1, 30) screen = pygame.display.set_mode((1024,768)) #TODO Add fullscreen mode -log = logger.log("logg.txt") - -logfile = open("log.txt", "w") +log = logger.log("log.txt") clock = pygame.time.Clock() @@ -26,31 +25,36 @@ SCHWARZ = (0,0,0) GRUEN = (0,255,0) ROT = (255,0,0) -logfile.write(F"{time.strftime("%H:%M:%S")} Loading game...\n") -log.writeln("TEST") +log.writeln("Loading game...") +log.writeln("Loading images...") + -logfile.write(F"{time.strftime("%H:%M:%S")} Loading images...\n") image_enemy = Utils.load_image("Rastergrafik.png") testimage = Utils.load_image("Rastergrafik.png") -logfile.write(F"{time.strftime("%H:%M:%S")} Setup fonts...\n") + +log.writeln("Setup fonts...") font1 = pygame.font.Font("/usr/share/fonts/TTF/Inconsolata-UltraExpandedExtraBold.ttf", 30) font2 = pygame.font.Font("/usr/share/fonts/TTF/Inconsolata-UltraExpandedExtraBold.ttf", 12) -logfile.write(F"{time.strftime("%H:%M:%S")} Get git revision hash...\n") + +log.writeln("Get git revision hash...") short_hash = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip() hash_label = font2.render(F"git-hash: {short_hash}", 1, ROT) -logfile.write(F"{time.strftime("%H:%M:%S")} Git-Hash: {short_hash}") +log.writeln(F"Git-Hash: {short_hash}") #testimage.set_colorkey((255,0,255), pygame.RLEACCELOK) player1 = GameObject.Player("Player", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage) player2 = GameObject.Player2("Player2", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage) + +levels.level.load() + spawned_enemys = list() i = 0 startpos_x = 50 startpos_y = 30 -for enemys in range(80): +for enemys in range(1): tmp_weapon = weapons.Laserblaster("Laserblaster", startpos_x, startpos_y, 5, 10, screen, testimage) tmp = GameObject.Enemy(F"Enemy-{i}", startpos_x,startpos_y,35,35, screen, testimage) tmp.give_weapon(tmp_weapon) @@ -75,7 +79,7 @@ while(gamestate): for event in pygame.event.get(): if(event.type == pygame.QUIT): - logfile.close() + del log gamestate = False player1.handle_input(event) player2.handle_input(event)