diff --git a/pygame-test.py b/pygame-test.py index fdaa6b8..6245e02 100644 --- a/pygame-test.py +++ b/pygame-test.py @@ -94,6 +94,8 @@ class GameObject(): 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_position(self): + return (self.__pos_x, self.__pos_y) def get_rect(self): return self.__rectobjekt @@ -153,16 +155,57 @@ def spawn_entities(x:int): count = 0 for y in range(x): Entity = GameObject("Entitiy-"+str(count), rand.randint(1,MAINSCREEN_SIZE[0]), rand.randint(1,MAINSCREEN_SIZE[1]), rand.randint(1,15)) - Objects.append(Entity) + Entity_rect = Entity.get_rect() + for y in Objects: y:GameObject + print(y.get_position()) + if(y.get_position()[0] == Entity.get_position()[0] or + y.get_position()[0] <= Entity.get_position()[0]+10 or + y.get_position()[0] <= Entity.get_position()[0]-10): + print("Überlagerung") + Objects.remove(y) #if(pygame.rect.Rect.colliderect(y)): # print("Kollision, neuberechnung") + #Neuberechnung der Cluster, falls Kollision mit bestehenden Clustern vorliegt + Objects.append(Entity) count += 1 for x in Objects: print(x) return list(Objects) +"""def spawn_entities(x:int): + entity_count = x + count = 0 + Objects = list() + print("Erstelle "+str(x)+" Objekte") + while(entity_count != 0): + Entity = GameObject("Entitiy-"+str(count), rand.randint(1,MAINSCREEN_SIZE[0]), rand.randint(1,MAINSCREEN_SIZE[1]), rand.randint(1,15)) + Entity_pos = Entity.get_position() + + if(count == 0): + Objects.append(Entity) + entity_count -= 1 + print("Erstes Objekt erstellt") + else: + for x in Objects: + x:GameObject + #print(Entity_pos) + #print(x.get_position()) + if(Entity_pos[0] <= (x.get_position()[0]-60) or Entity_pos[0] >= (x.get_position()[0] +60)): + if(Entity_pos[1] <= (x.get_position()[1]-60) or (Entity_pos[1] >= x.get_position()[1] +60)): + Objects.append(Entity) + entity_count -= 1 + + + count += 1 + print("Versuch: "+str(count), end="\r") + if(count == 20): break + + return list(Objects)""" + + + Player = GameObject("Player", 10, 10, 10, is_player=False) @@ -177,7 +220,7 @@ class Game(): x = 3600 invert = False -spawned_entities = spawn_entities(2) #Spawnt eine definierte Anzahl an GameObjekten +spawned_entities = spawn_entities(10) #Spawnt eine definierte Anzahl an GameObjekten count_spawend_enities = len(spawned_entities) #Fenster-Hauptschleife while active == True: @@ -185,7 +228,7 @@ while active == True: for event in pygame.event.get(): if (event.type == pygame.QUIT): print("Programm wird geschlossen!") - print(spawned_entities) + print(spawned_entities, end="\n") active = False elif (event.type == pygame.KEYDOWN): if (event.key == pygame.K_UP): @@ -216,40 +259,19 @@ while active == True: if(count_hidden_entities == count_spawend_enities): print("WIN!!!") - break + menu.enable() + menu.add.label("WIN", "win", 10) + menu.mainloop(MAINSCREEN) + #break - + pygame.draw.line(MAINSCREEN, (0,0,0), (10,0),(10,MAINSCREEN_SIZE[1])) + if(x == 0): for y in spawned_entities: y.hide() pass x -= 1 - - """ - rect1 = pygame.draw.rect(MAINSCREEN, (0,0,0), [ballpos_x,ballpos_y,100,100]) - if(not invert): - #if ballpos_x <= (MAINSCREEN.get_size()[0]): ballpos_x += 1 - if ballpos_y <= (MAINSCREEN.get_size()[1]): ballpos_y += 1 - #if(ballpos_x >= MAINSCREEN.get_size()[0]): ballpos_x = int(-100) - if(ballpos_y >= MAINSCREEN.get_size()[1]): ballpos_y = int(-100) - """ - - """ - Lässt das Rechteck diagonal auf- und ablaufen - if(not invert): - if ballpos_x < (MAINSCREEN.get_size()[0]-100): ballpos_x += 1 - if ballpos_y < (MAINSCREEN.get_size()[1]-100): ballpos_y += 1 - - else: - if ballpos_x != 0: ballpos_x -= 1 - if ballpos_y != 0: ballpos_y -= 1 - - if(ballpos_x == (MAINSCREEN.get_size()[0]-100) and ballpos_y == (MAINSCREEN.get_size()[1]-100)): - invert = True - if(ballpos_x == 0 and ballpos_y == 0): - invert = False - """ #print("Objekt-Koordinaten= X: "+str(rect1.x)+" Y: "+str(rect1.y)+"", end="\r") #Displayflip sorgt dafür, dass das Fenster entsprechend der Tickrate aktualisiert wird