random spawn of tower field
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user