From b9a1bff5e431b25192d0a5e3be00bda361a8cf42 Mon Sep 17 00:00:00 2001 From: Lukas Kammerhofer Date: Fri, 8 May 2026 16:00:50 +0200 Subject: [PATCH] random spawn of tower field --- src/tower.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/tower.py b/src/tower.py index 1665921..32df5b5 100644 --- a/src/tower.py +++ b/src/tower.py @@ -7,3 +7,26 @@ tower_size = 30 prjectile_size = 8 fire_interval = 1000 # ms zwischen Schüssen respawn_delay = 10000 # ms bis neues Feld spawnt + + +class Tower: + def __init__(self) -> None: + # Feld und Tower -> None wenn nicht aktiv + self.field_rect: pygame.Rect = None + self.tower_rect: pygame.Rect = None + self.projectiles: list[dict] = None + self.tower_start: int = None + self.despawn_timer: int = None + self.last_shot: int = 0 + + def field_spawn(self, room_rect: pygame.Rect, blocked_rects: list[pygame.Rect]): + # soll Tower Feld an zufälliger freier Position im Raum spawnen + for i in range(50): + x = random.randint(room_rect.left + tower_size, room_rect.right - tower_size * 2) + y = random.randint(room_rect.top + tower_size, room_rect.bottom - tower_size * 2) + rect = pygame.Rect(x, y, tower_size, tower_size) + + # freie Position finden - nicht auf dem Tisch oder blockierten Rects + if not any(rect.colliderect(b) for b in blocked_rects): + self.field_rect = rect + return \ No newline at end of file