From 28670e7609b28be5b3c3511ac8d2078d16392c5f Mon Sep 17 00:00:00 2001 From: christian Date: Mon, 1 Jan 2024 18:37:18 +0100 Subject: [PATCH] Some changes in subclass of Gameobject --- pygame-test.py | 56 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/pygame-test.py b/pygame-test.py index cbca767..8d29b42 100644 --- a/pygame-test.py +++ b/pygame-test.py @@ -9,33 +9,27 @@ MAINSCREEN = pygame.display.set_mode(MAINSCREEN_SIZE) pygame.display.set_caption("Testgame") WEISS = ( 255, 255, 255) +SCHWARZ = (0,0,0) + active = True clock = pygame.time.Clock() -# Definieren der Variablen -ballpos_x = 10 -ballpos_y = 10 - #TODO: Make Grid for running Rect class GameObject(): - __name = str() - __last_pos_x = int() - __last_pos_y = int() - __pos_x = int() - __pos_y = int() __color = (0,0,0) __size_rect_x:int __size_rect_y:int __movespeed = int() - __rectobjekt:pygame.Rect #Hier bitte ändern!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + __rectobjekt:pygame.Rect __surface = MAINSCREEN __hide = False __collided = False __is_player = False __is_rect = False __has_follower = False + count = 0 __movedirection = {"up":False, "down":False, "left":False, "right":False} @@ -43,6 +37,7 @@ class GameObject(): self.__name = name self.__pos_x = posx_init self.__pos_y = posy_init + self.pos_array = (posx_init,posy_init) self.__inital_pos_x = posx_init self.__initial_pos_y = posx_init self.__movespeed = move_speed @@ -50,6 +45,7 @@ class GameObject(): self.__is_rect = is_rect self.__size_rect_x = rect_size[0] self.__size_rect_y = rect_size[1] + self.count += 1 #self.__rectobjekt = rect @@ -131,6 +127,10 @@ class GameObject(): def set_collided(self): self.__collided = True + + def set_position(self, pos:tuple): + self.__pos_x = pos[0] + self.__pos_y = pos[1] def collide(self, GameObject) -> bool: #print(GameObject) @@ -161,20 +161,27 @@ class Follower(GameObject): def __init__(self, name: str, posx_init: int = 0, posy_init: int = 0, move_speed: int = 0, is_player: bool = False, is_rect: bool = True, rect_size: tuple = (10, 10)) -> None: super().__init__(name, posx_init, posy_init, move_speed, is_player, is_rect, rect_size) - def set_position(self, pos:tuple, playermovedirection:list): - + def set_position_player(self, pos:tuple, playermovedirection:list, debug=False): if(playermovedirection["up"]): - self.__pos_y = pos[1]+60 - self.__pos_x = pos[0] + super().set_position((pos[0],pos[1]+60)) + print(pos) if(playermovedirection["down"]): - self.__pos_y = pos[1]-60 - self.__pos_x = pos[0] + super().set_position((pos[0],pos[1]-60)) + print(pos) if(playermovedirection["left"]): - self.__pos_x = pos[0]+60 - self.__pos_y = pos[1] + super().set_position((pos[0]+60,pos[1])) + print(pos) if(playermovedirection["right"]): - self.__pos_x = pos[0]-60 - self.__pos_y = pos[1] + super().set_position((pos[0]-60,pos[1])) + print(pos) + + if(debug): + print(pos) + + def test(self): + print(super().get_position()) + + def start_game(): menu.disable() @@ -257,15 +264,20 @@ while active == True: if(y.is_collided() == False): if(y.collide(Player)): count_hidden_entities += 1 - #TODO Hardcopy der Gameobjects calss // Funktion manipuliert aktive Gameobjekte, welche mit vererbter Klasse instanziert werden - #Grund hierfür, konnte noch nicht ausfindig gemacht werden! xy = y.get_rect_size() append_follwer(xy[0], xy[1]) count_follower += 1 + #Zeichnet alle Verfolgerobjekte, sofern sie vorliegend sind + #TODO: Follower sollen ab dem zweiten Objekt dem vorangegangenen Objekt folgen und nicht dem player for follower in colided_objects: follower:Follower + follower.set_position_player(Player.get_position(), Player.get_playermovedirection(), True) + if(len(colided_objects) >= 1): + follower.set_position_player(follower.get_position(), Player.get_playermovedirection(), True) + print("Zeichne: " + follower.get_name()) follower.draw() + if(count_hidden_entities == count_spawend_enities):