From e17db93158aa42df23cfde01dc77422d739ac041 Mon Sep 17 00:00:00 2001 From: elukjanovica Date: Fri, 1 Mar 2024 00:02:17 +0200 Subject: [PATCH] --- images/assets/11_sprites.png | Bin 4379 -> 8530 bytes main.py | 41 ++++++++++++++++++++--------------- main_data.json | 8 +++---- main_puzzle.json | 2 +- 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/images/assets/11_sprites.png b/images/assets/11_sprites.png index d1ba08e8819b05bc433d7e6a04b7381690183e57..3a39a6421511f028169e5c3a3b42b2615227e96d 100644 GIT binary patch literal 8530 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 literal 4379 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 diff --git a/main.py b/main.py index fdf59c1..4ac977b 100644 --- a/main.py +++ b/main.py @@ -616,23 +616,6 @@ def play_sound(): sound.set_volume(volume) pygame.mixer.Sound.play(sound) -def render_settings(): - size_to_y = {"small": 15, "medium": 25, "big": 55} - y = size_to_y[settings_data["size"]] - - for setting in enumerate(settings_data): - render_text(setting[1], (size[1]-20, y), screen) - setting_rect = pygame.Rect(size[0], y, size[2], size[3]) - setting_hover = setting_rect.collidepoint(pygame.mouse.get_pos()) - - if setting_hover and pygame.mouse.get_pressed()[0]: - setting_name = setting - if setting_name != setting: - setting_name = None - - return setting - - y += cons[0] def set_hue(): global hue_value @@ -855,6 +838,13 @@ def data_check(current_mode): return background_image, current_buttons +scroll_offset = 0 +space_between_settings = 5 +settings_x_position = size[1] - 18 +settings_y_offset = 5 +total_settings_height = len(settings_data) * (cons[0] + space_between_settings) +max_scroll_offset = max(0, total_settings_height - non_movable_area.height) + # Game state run = True current_mode = "menu" @@ -963,6 +953,14 @@ while run: clicked_piece = False can_move = False + elif event.type == pygame.MOUSEBUTTONDOWN and current_mode == "settings": + if event.button == 4: + scroll_offset -= 20 + scroll_offset = max(0, scroll_offset) + elif event.button == 5: + scroll_offset += 20 + scroll_offset = min(scroll_offset, max_scroll_offset) + if current_mode == "game": if timer_running: current_time = pygame.time.get_ticks() - timer_start_time @@ -1052,7 +1050,14 @@ while run: pygame.time.delay(16) if current_mode == "settings": - render_settings() + clipped_rect = pygame.Rect(settings_x_position, non_movable_area.y, size[2], non_movable_area.height) + screen.set_clip(clipped_rect) + + for index, setting_name in enumerate(settings_data): + y = size[1] - scroll_offset + index * (cons[0] + space_between_settings) + render_text(setting_name, (settings_x_position, y - settings_y_offset), screen) + + screen.set_clip(None) pygame.display.flip() diff --git a/main_data.json b/main_data.json index 5011883..9a6adb6 100644 --- a/main_data.json +++ b/main_data.json @@ -5,10 +5,10 @@ 0, 0, 0, - 194, - "00:00:09", - "00:00:09", - 13 + 1094, + "00:00:11", + "00:00:11", + 16 ], "2.png": [ 0, diff --git a/main_puzzle.json b/main_puzzle.json index 2e72898..3c04bfb 100644 --- a/main_puzzle.json +++ b/main_puzzle.json @@ -1 +1 @@ -{"puzzle 4x4": [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 0]], "puzzle 3x3": [[1, 2, 3], [4, 5, 6], [7, 8, 0]], "current 4x4": {"matrix": [[0, 4, 9, 7], [13, 1, 8, 3], [2, 12, 5, 11], [15, 14, 6, 10]], "selected_image": "images/albums/Original images/1.png"}, "current 3x3": {"matrix": [[3, 6, 7], [5, 4, 1], [0, 8, 2]], "selected_image": "/images/albums/Birds/1.png"}} \ No newline at end of file +{"puzzle 4x4": [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 0]], "puzzle 3x3": [[1, 2, 3], [4, 5, 6], [7, 8, 0]], "current 4x4": {"matrix": [[4, 9, 7, 0], [13, 1, 8, 3], [2, 12, 5, 11], [15, 14, 6, 10]], "selected_image": "images/albums/Original images/1.png"}, "current 3x3": {"matrix": [[3, 6, 7], [5, 4, 1], [0, 8, 2]], "selected_image": "/images/albums/Birds/1.png"}} \ No newline at end of file