diff --git a/GameObject.py b/GameObject.py index 27b147f..29bbfb2 100644 --- a/GameObject.py +++ b/GameObject.py @@ -41,7 +41,7 @@ class GameObject(object): class Player(GameObject): def __init__(self, name, screen, pos_x, pos_y, width, height, image=None) -> None: super().__init__(name, pos_x, pos_y, width, height, image) - self._speed = 10 + self._speed = 8 self.screen:pygame.Surface = screen self.points = 0 self._health = 100 @@ -71,7 +71,11 @@ class Player(GameObject): return self._health def get_damage(self, damage:int): - self._health -= damage + + if((self._health - damage) <= 0): + self._health = 0 + else: + self._health -= damage def move(self, x=0, y=0): if x != 0: @@ -89,7 +93,7 @@ class Player(GameObject): def fire(self, 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) + shot = Projectile(self.name, self.pos_x+(self.width/2)-(projectile_width/2), self.pos_y-projectile_height, projectile_width, projectile_height, screen, 8) def firecontrol(self, screen): if(len(Projectile.shots) > 0): diff --git a/interface.py b/interface.py new file mode 100644 index 0000000..d214ae1 --- /dev/null +++ b/interface.py @@ -0,0 +1,38 @@ +import pygame + +class UIelement(object): + def __init__(self, screen, name, posx, posy) -> None: + self.screen = screen + self.name = name + self.posx = posx + self.posy = posy + pass + pass + +class Healthbar(UIelement): + def __init__(self, screen, name, posx, posy, width, height,playerhealth) -> None: + super().__init__(screen, name, posx, posy) + self.width = width + self.height = height + self.max_width = width + self.max_health = playerhealth + self.health = playerhealth + + def update(self, playerheatlh): + grundwert = self.max_health + prozentwert = playerheatlh + prozent = (playerheatlh/grundwert) + print(prozent) + print(prozentwert) + print(playerheatlh) + + #Update until playerhealth not zero + if(self.health > 0): + res = self.max_width*prozent + self.health = res + elif self.health < 0: + self.health = 0 + + def render(self, screen): + pygame.draw.rect(screen, (255,0,0), (self.posx, self.posy, self.health, self.height)) + pass diff --git a/test.py b/test.py index b8229d6..c918b54 100644 --- a/test.py +++ b/test.py @@ -2,6 +2,7 @@ import pygame import game import logger import weapons +import interface import GameObject import Utils import time @@ -49,6 +50,8 @@ log.writeln(F"Git-Hash: {short_hash}") 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) +healthbar1 = interface.Healthbar(screen, "Player1", 25, screen.get_size()[1]-80, 300, 10, player1.get_health()) + game.loadlevels() spawned_enemys = list() @@ -127,7 +130,8 @@ while(gamestate): #print("Treffer") #pos_x = mouse_pos[0] #pos_y = mouse_pos[1] - + healthbar1.update(player1.get_health()) + healthbar1.render(screen) player1.firecontrol(screen) player2.firecontrol(screen) @@ -235,5 +239,5 @@ while(gamestate): #if(mouse_pos <= (image.topleft+image.size) and mouse_pos >= image.topleft): # print("HIIIIITTT!!!!") - clock.tick(90) + clock.tick(60) pygame.display.flip() \ No newline at end of file