From 0436abb866107995eaef5270605c25794c74465f Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 9 Aug 2024 15:34:50 +0200 Subject: [PATCH] Added new movement --- GameObject.py | 50 ++++++++++++++++++++++++++++++++------------------ test.py | 6 ++++++ 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/GameObject.py b/GameObject.py index 9ab1ecd..8da68d8 100644 --- a/GameObject.py +++ b/GameObject.py @@ -12,6 +12,8 @@ class GameObject(object): self.rect:pygame.Rect self.objects.append(self) + self.keymap = {"up":False, "down":False, "left":False, "right":False} + def get_objectinfo(self): print(F"Gameobject-Info: \n", F"Name: {self.name}\n", @@ -41,22 +43,25 @@ class Player(GameObject): self.screen = screen def handle_input(self, event:pygame.event.EventType): - keys =pygame.key.get_pressed() - if(event.type == pygame.KEYDOWN): - print(event) - if(keys[pygame.K_LEFT]): - self.move(-self._speed) - if(keys[pygame.K_RIGHT]): - self.move(self._speed) - #Deaktiviert, vorerst soll Bewegung nur rechts oder links möglich sein - #if(event.key == pygame.K_UP): - # self.move(0, -self._speed) - #if(event.key == pygame.K_DOWN): - # self.move(0, self._speed) - if(event.key == pygame.K_SPACE): - #Fiiirrreee in the hole - print("Feuer!") - self.fire(self.screen) + + + if(event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT): + self.keymap["left"] = True + + elif(event.type == pygame.KEYUP and event.key == pygame.K_LEFT): + self.keymap["left"] = False + + + if(event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT): + self.keymap["right"] = True + + elif(event.type == pygame.KEYUP and event.key == pygame.K_RIGHT): + self.keymap["right"] = False + + if(event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE): + #Fiiirrreee in the hole + print("Feuer!") + self.fire(self.screen) def move(self, x=0, y=0): if x != 0: @@ -64,6 +69,13 @@ class Player(GameObject): if y != 0: self.pos_y += y + def move(self, direction): + if(direction == "left"): + self.pos_x -= self._speed + + if(direction == "right"): + 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) @@ -78,7 +90,8 @@ class Player(GameObject): #print("Playerschuss!") if(key == "Enemy"): - print(object.pos_x, " ", object.pos_y) + #print(object.pos_x, " ", object.pos_y) + pass @@ -122,6 +135,7 @@ class Projectile(GameObject): if(direction == "DOWN"): self.pos_y += self.speed if(self.pos_y >= self.screen.get_size()[1]): - print() + pass + #print() diff --git a/test.py b/test.py index 7d4611b..35fb9ec 100644 --- a/test.py +++ b/test.py @@ -35,6 +35,12 @@ while(gamestate): gamestate = False player.handle_input(event) + if(player.keymap["left"] == True): + player.move("left") + print("links") + if(player.keymap["right"] == True): + player.move("right") + print("rechts") image = screen.blit(testimage, (pos_x, pos_y))