From 06de20158f2be7d1fd51b65b6f2b12aa81457b89 Mon Sep 17 00:00:00 2001 From: administrator Date: Sat, 30 Dec 2023 12:37:07 +0100 Subject: [PATCH] Some changes on mechanics --- pygame-test.py | 51 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/pygame-test.py b/pygame-test.py index f63f2b7..57c9557 100644 --- a/pygame-test.py +++ b/pygame-test.py @@ -25,22 +25,24 @@ class GameObject(): __pos_x = int() __pos_y = int() __color = (0,0,0) - __size_rect = {"x":50, "y":50} + __size_rect = {"x":60, "y":60} __movespeed = int() __rectobjekt = pygame.Rect __surface = MAINSCREEN __hide = False __collided = False + __is_player = False __movedirection = {"up":False, "down":False, "left":False, "right":False} - def __init__(self, name:str, posx_init:int=0, posy_init:int=0, move_speed:int=0) -> None: + def __init__(self, name:str, posx_init:int=0, posy_init:int=0, move_speed:int=0, is_player:bool = False) -> None: self.__name = name self.__pos_x = posx_init self.__pos_y = posy_init self.__inital_pos_x = posx_init self.__initial_pos_y = posx_init self.__movespeed = move_speed + self.__is_player = is_player #self.__rectobjekt = rect def change_direction(self, direction:dict): @@ -86,7 +88,12 @@ class GameObject(): #font = pygame.font.SysFont(None, 70) #text = font.render("TEST", True, (0,0,0) ) if(self.__hide == False): # Update this --redraw each 10 pixels or self_size - self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__pos_x, self.__pos_y,self.__size_rect["x"],self.__size_rect["y"]]) + if(self.__is_player == True): + self.__updatepos(self.__pos_x, self.__pos_y) + self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__last_pos_x, self.__last_pos_y,self.__size_rect["x"],self.__size_rect["y"]]) + else: + self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__pos_x, self.__pos_y,self.__size_rect["x"],self.__size_rect["y"]]) + def get_rect(self): return self.__rectobjekt @@ -94,6 +101,12 @@ class GameObject(): def get_movespeed(self): return self.__movespeed + def __updatepos(self, posx, posy): + if posx == (self.__last_pos_x + self.__size_rect["x"]): self.__last_pos_x = self.__pos_x + if posy == (self.__last_pos_y + self.__size_rect["y"]): self.__last_pos_y = self.__pos_y + print("x= "+str(self.__last_pos_x)+" y= "+str(self.__last_pos_y), end="\r") + pass + def is_collided(self) -> bool: return self.__collided @@ -110,12 +123,9 @@ class GameObject(): self.set_collided() #self.hide() #Löscht das Objekt nach einem Zusammenstoß mit Playerobject - def draw_follower(self, *Entities:tuple): + def draw_follower(self, Player): """Für alle Collidierten Gameobjects""" - for x in Entities: - y = GameObject(x) - if(y.is_collided() == True): - print("REST") + #print("Zeichne verfolger") def hide(self): if(self.__hide != True): @@ -135,13 +145,21 @@ def spawn_entities(x:int): return list(Objects) -Player = GameObject("Player", 10, 10) +Player = GameObject("Player", 10, 10, is_player=False) background = pygame.surface.Surface((640,480)) +#Behandelt später die Hauptschleife und Klassenobjekte +class Game(): + __state = {"win":False, "lose":False, "paused":False} + def __init__(self) -> None: + pass + + x = 3600 invert = False -spawned_entities = spawn_entities(10) #Spawnt eine definierte Anzahl an GameObjekten +spawned_entities = spawn_entities(25) #Spawnt eine definierte Anzahl an GameObjekten +count_spawend_enities = len(spawned_entities) #Fenster-Hauptschleife while active == True: MAINSCREEN.fill((255,255,255)) @@ -165,17 +183,22 @@ while active == True: Player.change_direction("left") Player.draw() - Player.move(2) - + Player.move(12) + count_hidden_entities = 0 for y in spawned_entities: y:GameObject y.draw() y.collide(Player) if(y.is_collided() == True): y.hide() - + count_hidden_entities += 1 + Player.draw_follower(y) + #spawned_entities.remove(y) - Player.draw_follower(spawned_entities) + if(count_hidden_entities == count_spawend_enities): + print("WIN!!!") + break + if(x == 0): for y in spawned_entities: