Added new classes

Edited player.get_damage() function
This commit is contained in:
Christian
2024-08-20 22:10:55 +02:00
parent 6742e4585d
commit b6590d33b8
3 changed files with 51 additions and 5 deletions

View File

@@ -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,6 +71,10 @@ class Player(GameObject):
return self._health
def get_damage(self, damage:int):
if((self._health - damage) <= 0):
self._health = 0
else:
self._health -= damage
def move(self, x=0, y=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):

38
interface.py Normal file
View File

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

View File

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