diff --git a/src/tower.py b/src/tower.py index 843d6cb..480f327 100644 --- a/src/tower.py +++ b/src/tower.py @@ -1,3 +1,5 @@ +from turtledemo.lindenmayer import draw + import pygame import random import math @@ -34,6 +36,14 @@ class Tower: print(f"Error loading tower sprite: {e}") self.tower_image = None + # Sprite laden für Projektil + try: + self.projectile_image = pygame.image.load("assets/items/book.png").convert_alpha() + self.projectile_image = pygame.transform.scale(self.projectile_image, (projectile_size, projectile_size)) + except Exception as e: + print(f"Error loading projectile sprite: {e}") + self.tower_image = None + # soll interaktives Tower Feld an zufälliger freier Position im Raum spawnen def field_spawn(self, room_rect: pygame.Rect, blocked_rects: list[pygame.Rect]): # versucht bis zu 50 mal, eine nicht belegte Stelle im Raum zu finden @@ -144,10 +154,20 @@ class Tower: # Restzeit der Tower über dem Sprite anzeigen (in Sekunden) surface.blit(font.render(str(sec), True, (255, 255, 255)), (r.x + 8, r.y - 18)) - # alle aktiven Projektile zeichnen als kleine Rechtecke + # alle aktiven Projektile zeichnen als Prite oder Fallback als kleine Rechtecke for p in self.projectiles: - pygame.draw.rect(surface, COLOR_PROJECTILE, - pygame.Rect(int(p["x"]) - cam_x, int(p["y"]) - cam_y, projectile_size, projectile_size)) + draw_x = int(p["x"]) - cam_x + draw_y = int(p["y"]) - cam_y + + if self.projectile_image: + # zeichnet Buch Sprite + surface.blit(self.projectile_image, (draw_x, draw_y)) + else: + # Fallback - gelbes Rechteck + pygame.draw.rect(surface, COLOR_PROJECTILE, + pygame.Rect(int(p["x"]) - cam_x, int(p["y"]) - cam_y, projectile_size, projectile_size)) + + # alles zurücksetzen, wenn der Raum verlassen wird