diff --git a/GameObject.py b/GameObject.py index f5a1758..f6fe01f 100644 --- a/GameObject.py +++ b/GameObject.py @@ -64,7 +64,13 @@ class Player(GameObject): if(event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE): #Fiiirrreee in the hole #print("Feuer!") - self.fire(self.screen) + self.fire(self.screen) + + def get_health(self): + return self._health + + def get_damage(self, damage:int): + self._health -= damage def move(self, x=0, y=0): if x != 0: @@ -80,7 +86,9 @@ class Player(GameObject): self.pos_x += self._speed def fire(self, screen): - shot = Projectile(self.name, self.pos_x+(self.width/2),self.pos_y-self.height,5,10, screen) + projectile_width = 6 + projectile_height = 10 + shot = Projectile(self.name, self.pos_x+(self.width/2)-(projectile_width/2), self.pos_y-projectile_height, projectile_width, projectile_height, screen, 10) def firecontrol(self, screen): if(len(Projectile.shots) > 0): @@ -91,7 +99,6 @@ class Player(GameObject): if(key == "Player"or key == "Player2"): object.animate("UP") #print("Playerschuss!") - if(key == "Enemy"): #print(object.pos_x, " ", object.pos_y) pass diff --git a/game.py b/game.py index 9c4ec09..bd8c24d 100644 --- a/game.py +++ b/game.py @@ -15,4 +15,4 @@ levels_list.append(first_level("First Level", (500,500), 10, 2)) def loadlevels(): for level in levels_list: print(level) - pass \ No newline at end of file + pass diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e5bbbc3 --- /dev/null +++ b/readme.md @@ -0,0 +1,2 @@ +TODOS: +-Add ballistics calculation over time not pixel x framerate \ No newline at end of file diff --git a/test.py b/test.py index b2ac583..39b254a 100644 --- a/test.py +++ b/test.py @@ -1,6 +1,5 @@ import pygame import game -import levels import logger import weapons import GameObject @@ -59,8 +58,8 @@ spawned_enemys = list() i = 0 startpos_x = 50 startpos_y = 30 -for enemys in range(1): - tmp_weapon = weapons.Laserblaster("Laserblaster", startpos_x, startpos_y, 5, 10, screen, testimage) +for enemys in range(10): + tmp_weapon = weapons.Laserblaster("Laserblaster", startpos_x, startpos_y, 5, 10, 30, 1, 0, screen, testimage) tmp = GameObject.Enemy(F"Enemy-{i}", startpos_x,startpos_y,35,35, screen, testimage) tmp.give_weapon(tmp_weapon) if(startpos_x >= (screen.get_size()[0]-150)): @@ -90,6 +89,9 @@ while(gamestate): #Push F10 for fullscreen-mode if(event.type == pygame.KEYDOWN and event.key == pygame.K_F10): pygame.display.set_mode(RENDERING_SIZE, pygame.FULLSCREEN) + #Push F9 for window-mode + if(event.type == pygame.KEYDOWN and event.key == pygame.K_F9): + pygame.display.set_mode((RENDERING_SIZE)) player1.handle_input(event) player2.handle_input(event) @@ -164,7 +166,7 @@ while(gamestate): # Life decrease only once! if(pygame.Rect.colliderect(projectile.rect, player1.rect)): #print("Game-Over") - player1.lifes -= 1 + player1.get_damage(enemy.get_weapon().damage) try: index = GameObject.Projectile.shots.index(projectiles) del GameObject.Projectile.shots[index] @@ -173,7 +175,7 @@ while(gamestate): #TODO Add Gameover event if(pygame.Rect.colliderect(projectile.rect, player2.rect)): #print("Game-Over") - player2.lifes -= 1 + player1.get_damage(enemy.get_weapon().damage) try: index = GameObject.Projectile.shots.index(projectiles) del GameObject.Projectile.shots[index] @@ -193,7 +195,9 @@ while(gamestate): #print("Playerkills 1:", player1.kills) #print("Playerkills 2:", player2.kills) - + + print(F"Player 1 Health: {player1.get_health()}") + print(F"Player 2 Health: {player2.get_health()}") player1.render(screen) player2.render(screen) #print(int(seconds), "\r") @@ -226,7 +230,7 @@ while(gamestate): scaled_win = pygame.transform.smoothscale(screen, window.get_size()) #Blits the mainsurface to the mainwindow window.blit(scaled_win, (0, 0)) - + #if(mouse_pos <= (image.topleft+image.size) and mouse_pos >= image.topleft): # print("HIIIIITTT!!!!") frametime = 0 diff --git a/weapons.py b/weapons.py index fe9f4ab..202c61e 100644 --- a/weapons.py +++ b/weapons.py @@ -1,8 +1,8 @@ import GameObject class Laserblaster(GameObject.Weapons): - def __init__(self, name, pos_x, pos_y, width, height, screen, image=None) -> None: - super().__init__(name, pos_x, pos_y, width, height, 10, 2, 0, image) + def __init__(self, name, pos_x, pos_y, width, height, damage:int, firerate:int, duration:int, screen, image=None) -> None: + super().__init__(name, pos_x, pos_y, width, height, damage, firerate, duration, screen, image) self.screen = screen self.image = image