From 89e55ab3b05621a7906428d2997f2c6f41aeb0ef Mon Sep 17 00:00:00 2001 From: Jan Lerking Date: Tue, 29 Apr 2025 20:41:24 +0200 Subject: [PATCH] Working on getting falled brick to stay in place. /JL --- dropzone.py | 10 ++++++++++ tetris.py | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dropzone.py b/dropzone.py index 9ac3ff2..5417b29 100644 --- a/dropzone.py +++ b/dropzone.py @@ -5,6 +5,7 @@ from enums import BrickColor class DropZone(): def __init__(self, width, height): self.dropzone = pygame.Surface((width * globals.TILE_SIZE, height * globals.TILE_SIZE)) + #self.dropzone.fill(BrickColor.Black.value) self.width = width self.height = height @@ -14,3 +15,12 @@ class DropZone(): def draw_brick(self, brick, location): self.dropzone.fill(BrickColor.Black.value) self.dropzone.blit(brick, (location[0] * globals.TILE_SIZE, location[1] * globals.TILE_SIZE)) + + def lock(self, brick): + for row_idx, row in enumerate(brick.shape): + for col_idx, cell in enumerate(row): + if cell: + globals.dropgrid[brick.y + row_idx][brick.x + col_idx] = 1 + self.dropzone.blit(brick.brick, (brick.y + row_idx, brick.x + col_idx)) + + \ No newline at end of file diff --git a/tetris.py b/tetris.py index 2b25220..04bc4d4 100644 --- a/tetris.py +++ b/tetris.py @@ -10,7 +10,7 @@ from dropzone import DropZone from dropnext import DropNext from hud import Hud -__version__ = "0.1.1" +__version__ = "0.1.2" # Constants HAT_REPEAT_DELAY = 0 # milliseconds before first repeat @@ -178,6 +178,7 @@ class Tetris: case self.fall_timer: if not self.current.update(): + self.dropzone.lock(self.current) self.current = self.next self.next = Brick(brick = randrange(0, len(BRICKS)))