From 9fc7a2cbdaf2e1dd7e51e4e160689f58539ebcbe Mon Sep 17 00:00:00 2001 From: Haiden Niklas Date: Thu, 7 May 2026 18:37:12 +0000 Subject: [PATCH] feature: desk basic mechanic --- src/desk.py | 30 ++++++++++++++++++++++++++++++ src/settings.py | 4 ++++ 2 files changed, 34 insertions(+) create mode 100644 src/desk.py create mode 100644 src/settings.py diff --git a/src/desk.py b/src/desk.py new file mode 100644 index 0000000..83e57ff --- /dev/null +++ b/src/desk.py @@ -0,0 +1,30 @@ +import pygame +from src.settings import DESK_WIDTH, DESK_HEIGHT + +class Desk: + def __init__(self, x, y): + # each desk must be positioned with its own x/y coordinates + self.x = x + self.y = y + + # size for collision rect and table + self.rect = pygame.Rect(self.x, self.y, DESK_WIDTH, DESK_HEIGHT) + + try: + self.image = pygame.image.load("assets/furniture/desk.png").convert_alpha() + # scale the sprite to match collision rect + self.image = pygame.transform.scale(self.image, (DESK_WIDTH, DESK_HEIGHT)) + except Exception as e: + print(f"Error loading desk sprite: {e}") + self.image = None + + # check if player touches table + def check_collision(self, player_rect): + return self.rect.colliderect(player_rect) + + # draw table - use sprite and as fallback a brown rect + def draw(self, screen): + if self.image: + screen.blit(self.image, self.rect) + else: + pygame.draw.rect(screen, (193, 69, 19), self.rect) \ No newline at end of file diff --git a/src/settings.py b/src/settings.py new file mode 100644 index 0000000..4055ea3 --- /dev/null +++ b/src/settings.py @@ -0,0 +1,4 @@ +# --- DESK --- +DESK_WIDTH = 70 +DESK_HEIGHT = 40 +