Some changes in classes
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
.venv/
|
.venv/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
test.spec
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
|
#Statics
|
||||||
|
spawned_enemys = list()
|
||||||
|
|
||||||
class GameObject(object):
|
class GameObject(object):
|
||||||
objects = list()
|
objects = list()
|
||||||
def __init__(self, name, pos_x, pos_y, width, height, image=None) -> None:
|
def __init__(self, name, pos_x, pos_y, width, height, image=None) -> None:
|
||||||
|
|||||||
1
game.py
1
game.py
@@ -5,4 +5,3 @@
|
|||||||
import GameObject
|
import GameObject
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
#weapons = dict()
|
|
||||||
45
levels.py
45
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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
6
log.txt
6
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!
|
||||||
|
|||||||
27
logger.py
27
logger.py
@@ -2,19 +2,28 @@ import time
|
|||||||
|
|
||||||
class log(object):
|
class log(object):
|
||||||
def __init__(self, logfile:str) -> None:
|
def __init__(self, logfile:str) -> None:
|
||||||
__logfile = logfile
|
self.__logfile = logfile
|
||||||
__filehandle = None
|
self.__filehandle = None
|
||||||
|
|
||||||
try:
|
if(len(self.__logfile) >= 3):
|
||||||
self.__filehandle = open(self.logfile, "w")
|
try:
|
||||||
except FileExistsError:
|
self.__filehandle = open(self.__logfile, "w")
|
||||||
print("Datei existiert bereits...")
|
except FileExistsError:
|
||||||
|
print("Datei existiert bereits...")
|
||||||
|
|
||||||
except:
|
except:
|
||||||
print("Something went wrong!")
|
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):
|
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):
|
def __del__(self):
|
||||||
self.writeln("Log closed!")
|
self.writeln("Log closed!")
|
||||||
|
|||||||
26
test.py
26
test.py
@@ -1,5 +1,6 @@
|
|||||||
import pygame
|
import pygame
|
||||||
import game
|
import game
|
||||||
|
import levels
|
||||||
import logger
|
import logger
|
||||||
import weapons
|
import weapons
|
||||||
import GameObject
|
import GameObject
|
||||||
@@ -15,9 +16,7 @@ pygame.mouse.set_visible(True)
|
|||||||
#pygame.key.set_repeat(1, 30)
|
#pygame.key.set_repeat(1, 30)
|
||||||
screen = pygame.display.set_mode((1024,768)) #TODO Add fullscreen mode
|
screen = pygame.display.set_mode((1024,768)) #TODO Add fullscreen mode
|
||||||
|
|
||||||
log = logger.log("logg.txt")
|
log = logger.log("log.txt")
|
||||||
|
|
||||||
logfile = open("log.txt", "w")
|
|
||||||
|
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
|
|
||||||
@@ -26,31 +25,36 @@ SCHWARZ = (0,0,0)
|
|||||||
GRUEN = (0,255,0)
|
GRUEN = (0,255,0)
|
||||||
ROT = (255,0,0)
|
ROT = (255,0,0)
|
||||||
|
|
||||||
logfile.write(F"{time.strftime("%H:%M:%S")} Loading game...\n")
|
log.writeln("Loading game...")
|
||||||
log.writeln("TEST")
|
log.writeln("Loading images...")
|
||||||
|
|
||||||
|
|
||||||
logfile.write(F"{time.strftime("%H:%M:%S")} Loading images...\n")
|
|
||||||
image_enemy = Utils.load_image("Rastergrafik.png")
|
image_enemy = Utils.load_image("Rastergrafik.png")
|
||||||
testimage = 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)
|
font1 = pygame.font.Font("/usr/share/fonts/TTF/Inconsolata-UltraExpandedExtraBold.ttf", 30)
|
||||||
font2 = pygame.font.Font("/usr/share/fonts/TTF/Inconsolata-UltraExpandedExtraBold.ttf", 12)
|
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()
|
short_hash = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip()
|
||||||
hash_label = font2.render(F"git-hash: {short_hash}", 1, ROT)
|
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)
|
#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)
|
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)
|
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()
|
spawned_enemys = list()
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
startpos_x = 50
|
startpos_x = 50
|
||||||
startpos_y = 30
|
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_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 = GameObject.Enemy(F"Enemy-{i}", startpos_x,startpos_y,35,35, screen, testimage)
|
||||||
tmp.give_weapon(tmp_weapon)
|
tmp.give_weapon(tmp_weapon)
|
||||||
@@ -75,7 +79,7 @@ while(gamestate):
|
|||||||
|
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if(event.type == pygame.QUIT):
|
if(event.type == pygame.QUIT):
|
||||||
logfile.close()
|
del log
|
||||||
gamestate = False
|
gamestate = False
|
||||||
player1.handle_input(event)
|
player1.handle_input(event)
|
||||||
player2.handle_input(event)
|
player2.handle_input(event)
|
||||||
|
|||||||
Reference in New Issue
Block a user