From c29ed8af338defbbf92e2f95ecc888abb676f69e Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 9 Aug 2024 14:17:24 +0200 Subject: [PATCH] Some changes.. --- GameObject.py | 46 ++++++++++++++++++++++++++++++++++++++-------- test.py | 5 +++-- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/GameObject.py b/GameObject.py index e8e4a1f..9ab1ecd 100644 --- a/GameObject.py +++ b/GameObject.py @@ -35,10 +35,10 @@ class GameObject(object): self.height = height class Player(GameObject): - shots_fired = list() - def __init__(self, name, pos_x, pos_y, width, height, image=None) -> None: + 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.screen = screen def handle_input(self, event:pygame.event.EventType): keys =pygame.key.get_pressed() @@ -56,7 +56,7 @@ class Player(GameObject): if(event.key == pygame.K_SPACE): #Fiiirrreee in the hole print("Feuer!") - pass + self.fire(self.screen) def move(self, x=0, y=0): if x != 0: @@ -64,6 +64,24 @@ class Player(GameObject): if y != 0: self.pos_y += y + def fire(self, screen): + shot = Projectile(self.name, self.pos_x+(self.width/2),self.pos_y-self.height,5,10, screen) + + def firecontrol(self, screen): + if(len(Projectile.shots) >0): + for objects in Projectile.shots: + objects:dict + for key, object in objects.items(): + object:Projectile + if(key == "Player"): + object.animate("UP") + #print("Playerschuss!") + + if(key == "Enemy"): + print(object.pos_x, " ", object.pos_y) + + + class Enemy(GameObject): shots_fired = list() def __init__(self, name, pos_x, pos_y, width, height, screen, image=None) -> None: @@ -71,14 +89,14 @@ class Enemy(GameObject): def fire(self, screen): print("Schieße!!!!") - shot = Projectile(" ", self.pos_x+(self.width/2),self.pos_y+self.height,5,10, screen) + shot = Projectile("Enemy", self.pos_x+(self.width/2),self.pos_y+self.height,5,10, screen) self.shots_fired.append(shot) def shoot(self): if(len(self.shots_fired) > 0): for shots in self.shots_fired: shots:Projectile - shots.animate() + shots.animate("DOWN") def move(self, x=0, y=0): if(x != 0): @@ -87,11 +105,23 @@ class Enemy(GameObject): self.pos_y += y class Projectile(GameObject): + shots = list() def __init__(self, name, pos_x, pos_y, width, height, screen, image=None) -> None: super().__init__(name, pos_x, pos_y, width, height, image) - self.screen = screen + self.screen:pygame.Surface = screen self.speed = 10 - def animate(self): + self.shot = {name:self} + self.shots.append(self.shot) + + + def animate(self, direction): self.rect = pygame.draw.rect(self.screen, (0,0,0), (self.pos_x, self.pos_y, self.width, self.height)) - self.pos_y += self.speed \ No newline at end of file + if(direction == "UP"): + self.pos_y -= self.speed + if(direction == "DOWN"): + self.pos_y += self.speed + if(self.pos_y >= self.screen.get_size()[1]): + print() + + diff --git a/test.py b/test.py index 82da552..7d4611b 100644 --- a/test.py +++ b/test.py @@ -19,7 +19,7 @@ testimage = Utils.load_image("Rastergrafik.png") #testimage.set_colorkey((255,0,255), pygame.RLEACCELOK) enemy = GameObject.Enemy("Enemy-1", (screen.get_size()[0]/2) -30,30,35,35, screen, testimage) -player = GameObject.Player("TEST", (screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage) +player = GameObject.Player("Player", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage) gamestate = True @@ -47,7 +47,7 @@ while(gamestate): max = tuple(map(lambda i, j : i+j, image.topleft, image.size)) #Wenn Mausposition X-Achse innerhalb Anfangsposition+Breite if(mouse_pos[0] <= max[0] and mouse_pos[0] >= image.topleft[0]): - #Wenn Mausposition Y-Achse innerhalb Anfangsposition+Höhe + #Wenn Mausposition Y-Achse innerhalb Anfangsposition+Höhe if(mouse_pos[1] <= max[1] and mouse_pos[1] >= image.topleft[1]): print("Treffer") pos_x = mouse_pos[0] @@ -67,6 +67,7 @@ while(gamestate): enemy.move(-5) enemy.shoot() + player.firecontrol(screen) player.render(screen) enemy.render(screen)