diff --git a/bricks.py b/bricks.py index 77e6487..e39d81c 100644 --- a/bricks.py +++ b/bricks.py @@ -61,7 +61,8 @@ class Brick: return True if self.state == enums.BrickState.Current else False def update(self): - pass + self.y += 1 + self.location = (self.x, self.y) def rotate(self): print("Rotating") diff --git a/hud.py b/hud.py index e3e3569..6b2948a 100644 --- a/hud.py +++ b/hud.py @@ -4,9 +4,6 @@ from enums import BrickColor class Hud: def __init__(self, screen_width, screen_height, tile_size, font_size=36, highscore_file="highscore.txt"): - self.score = 0 - self.lines = 0 - self.level = 0 self.highscore_file = highscore_file self.highscore = self.load_highscore() @@ -15,6 +12,8 @@ class Hud: self.screen_width = screen_width self.screen_height = screen_height self.tile_size = tile_size + + self.reset() def load_highscore(self): if os.path.exists(self.highscore_file): @@ -45,9 +44,13 @@ class Hud: def level_up(self): self.level += 1 - def reset(self, reset_score=True): + def reset(self, reset_score=True, reset_lines=True, reset_level=True): if reset_score: self.score = 0 + if reset_lines: + self.lines = 0 + if reset_level: + self.level = 1 def draw(self, screen): # Score (top-left) diff --git a/tetris.py b/tetris.py index e409f1b..3d678c4 100644 --- a/tetris.py +++ b/tetris.py @@ -7,7 +7,7 @@ from dropzone import DropZone from dropnext import DropNext from hud import Hud -__version__ = "0.0.3" +__version__ = "0.0.4" # Constants HAT_REPEAT_DELAY = 0 # milliseconds before first repeat @@ -51,7 +51,13 @@ class Tetris: self.clock = pygame.time.Clock() self.rumble_timer = pygame.time.get_ticks() - + self.fall_speed = 1000 # in milliseconds + self.fall_timer = pygame.USEREVENT + 1 + pygame.time.set_timer(self.fall_timer, self.get_fall_speed(self.hud.level)) + + def get_fall_speed(self, level): + return max(100, 1000 - (level - 1) * 100) + def main_loop(self): if self.joysticks: if pygame.time.get_ticks() - self.rumble_timer > RUMBLE_TIMEOUT: @@ -166,6 +172,9 @@ class Tetris: break self.current.drop() + case self.fall_timer: + self.current.update() + # Handle hotplugging case pygame.JOYDEVICEADDED: # This event will be generated when the program starts for every