From e3fc96bff8623d4f71210e1115a09ce350a19547 Mon Sep 17 00:00:00 2001 From: administrator Date: Sun, 31 Dec 2023 18:08:26 +0100 Subject: [PATCH] New class for Follower added Masterclass copy seems not working correctly --- pygame-test.py | 79 +++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/pygame-test.py b/pygame-test.py index 80b4f00..2df70b0 100644 --- a/pygame-test.py +++ b/pygame-test.py @@ -141,19 +141,7 @@ class GameObject(): self.__hide = True """TODO: Delete obeject function""" - def set_position(self, pos:tuple, playermovedirection:list): - if(playermovedirection["up"]): - self.__pos_y = pos[1]+60 - self.__pos_x = pos[0] - if(playermovedirection["down"]): - self.__pos_y = pos[1]-60 - self.__pos_x = pos[0] - if(playermovedirection["left"]): - self.__pos_x = pos[0]+60 - self.__pos_y = pos[1] - if(playermovedirection["right"]): - self.__pos_x = pos[0]-60 - self.__pos_y = pos[1] + #print(pos) #print(self.get_position()) @@ -231,13 +219,32 @@ class Game(): __state = {"win":False, "lose":False, "paused":False} def __init__(self) -> None: pass - + +class Follower(GameObject): + def __init__(self, name: str, posx_init: int = 0, posy_init: int = 0, move_speed: int = 0, is_player: bool = False) -> None: + super().__init__(name, posx_init, posy_init, move_speed, is_player) + + def set_position(self, pos:tuple, playermovedirection:list): + + if(playermovedirection["up"]): + self.__pos_y = pos[1]+60 + self.__pos_x = pos[0] + if(playermovedirection["down"]): + self.__pos_y = pos[1]-60 + self.__pos_x = pos[0] + if(playermovedirection["left"]): + self.__pos_x = pos[0]+60 + self.__pos_y = pos[1] + if(playermovedirection["right"]): + self.__pos_x = pos[0]-60 + self.__pos_y = pos[1] x = 3600 invert = False spawned_entities = spawn_entities(10) #Spawnt eine definierte Anzahl an GameObjekten count_spawend_enities = len(spawned_entities) test_grid_x = MAINSCREEN_SIZE[0]/60 +colided_objects = list() #Fenster-Hauptschleife while active == True: @@ -266,8 +273,7 @@ while active == True: #Spawns the Entities count_hidden_entities = 0 - first_follower:GameObject - last_object:GameObject = None + for y in spawned_entities: y:GameObject @@ -275,30 +281,13 @@ while active == True: #Der erste Follower folgt dem Spieler, alle übrigen folgen den vorherien Verfolgern #y.hide() count_hidden_entities += 1 - - if(Player.has_follower() == False): - Player.set_follower() - last_object = y - print("Erste Verfolger: ", end=" ") - print(last_object) - - if(last_object): - print("This Object: ", end=" ") - print(y) - print("Last Objetct: ", end=" ") - print("Last Objetct: ", end=" ") - print(last_object) - print("Position letztes Objekte: ", end=" ") - print(last_object.get_position()) - print("Position aktuelles Objekt:", end=" ") - print(y.get_position()) - y.set_position(last_object.get_position(), Player.get_playermovedirection()) - - y.set_position(Player.get_position(), Player.get_playermovedirection()) - last_object = y - - y.draw() - y.collide(Player) + colidedobj = Follower(y) + colided_objects.append(colidedobj) + spawned_entities.remove(y) + + if(y.is_collided() == False): + y.draw() + y.collide(Player) if(count_hidden_entities == count_spawend_enities): print("WIN!!!") @@ -307,6 +296,16 @@ while active == True: menu.mainloop(MAINSCREEN) break + print(len(colided_objects)) + obj1_count = 0 + for obj1 in colided_objects: + obj1:Follower + Player:GameObject + print(Player.get_position()) + obj1.set_position(Player.get_position(), Player.get_playermovedirection()) + print(obj1.get_position()) + #print(Player.get_playermovedirection()) + obj1.draw() """Drawing Lines test pos = 0 for x in range(20):