Some changes in classes

This commit is contained in:
Christian
2024-08-18 11:57:38 +02:00
parent 0bbe702f8a
commit fb55785db1
8 changed files with 89 additions and 23 deletions

3
.gitignore vendored
View File

@@ -1,2 +1,3 @@
.venv/
__pycache__/
__pycache__/
test.spec

View File

@@ -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:

View File

@@ -5,4 +5,3 @@
import GameObject
import pygame
#weapons = dict()

View File

@@ -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)

View File

@@ -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!

View File

@@ -1 +0,0 @@
11:33:32: TEST

View File

@@ -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!")

26
test.py
View File

@@ -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)