From cb063b8b129b65fe0d7d9c69a2b4ce1182e98703 Mon Sep 17 00:00:00 2001 From: JustinOros Date: Mon, 14 Jul 2025 11:13:29 -0700 Subject: [PATCH] Added cherry blossom petals. --- maguro-game/maguro-game.py | 43 ++++++++++++++++++++++++++++++++++--- maguro-game/petal.png | Bin 0 -> 35080 bytes 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 maguro-game/petal.png diff --git a/maguro-game/maguro-game.py b/maguro-game/maguro-game.py index 017607f..c5e7c13 100644 --- a/maguro-game/maguro-game.py +++ b/maguro-game/maguro-game.py @@ -22,6 +22,7 @@ clock = pygame.time.Clock() CAT_SIZE = [160, 160] SUSHI_SIZE = (50, 50) CLOUD_SIZE = (200, 120) +PETAL_SIZE = (30, 30) cat_left_base = pygame.image.load("tuna-left.png").convert_alpha() cat_right_base = pygame.image.load("tuna-right.png").convert_alpha() @@ -41,6 +42,9 @@ wasabi_img = pygame.transform.smoothscale(wasabi_img, SUSHI_SIZE) cloud_base = pygame.image.load("cloud.png").convert_alpha() cloud_img = pygame.transform.smoothscale(cloud_base, CLOUD_SIZE) +petal_base = pygame.image.load("petal.png").convert_alpha() +petal_img = pygame.transform.smoothscale(petal_base, PETAL_SIZE) + chomp_sound = pygame.mixer.Sound("audio_chomp.mp3") meow_sound = pygame.mixer.Sound("audio_meow.mp3") @@ -72,6 +76,12 @@ cloud_spawn_interval = 4000 last_cloud_spawn = 0 cloud_speed_multiplier = 1.0 +petals = [] +petal_spawn_interval = 200 +last_petal_spawn = 0 +petal_fall_speed = 3 +petal_speed_multiplier = 1.0 + start_time = pygame.time.get_ticks() speed_increase_time = start_time @@ -99,7 +109,7 @@ def draw_centered_multiline_text(lines, color=(255,255,255), line_spacing=10): y += surf.get_height() + line_spacing def reset_game(): - global score, objects, game_over, cat_rect, cat_img, cat_facing, game_over_time, paused, pause_by_controller, start_time, speed_increase_time, sushi_fall_speed, CAT_SIZE, cat_left, cat_right, clouds, last_cloud_spawn, cloud_speed_multiplier + global score, objects, game_over, cat_rect, cat_img, cat_facing, game_over_time, paused, pause_by_controller, start_time, speed_increase_time, sushi_fall_speed, CAT_SIZE, cat_left, cat_right, clouds, last_cloud_spawn, cloud_speed_multiplier, petals, last_petal_spawn, petal_fall_speed, petal_speed_multiplier score = 0 objects = [] game_over = False @@ -116,8 +126,12 @@ def reset_game(): cat_rect.bottom = HEIGHT sushi_fall_speed = 5 clouds.clear() - last_cloud_spawn = pygame.time.get_ticks() - cloud_spawn_interval + last_cloud_spawn = pygame.time.get_ticks() - 4000 cloud_speed_multiplier = 1.0 + petals.clear() + last_petal_spawn = pygame.time.get_ticks() - petal_spawn_interval + petal_fall_speed = 3 + petal_speed_multiplier = 1.0 start_time = pygame.time.get_ticks() speed_increase_time = start_time @@ -141,6 +155,14 @@ def spawn_cloud(): phase = random.uniform(0, 2 * math.pi) clouds.append({'rect': rect, 'speed': speed, 'base_y': y, 'phase': phase}) +def spawn_petal(): + x = random.randint(0, WIDTH) + y = -PETAL_SIZE[1] + rect = petal_img.get_rect(topleft=(x, y)) + horizontal_drift = random.uniform(-0.5, 0.5) + phase = random.uniform(0, 2 * math.pi) + petals.append({'rect': rect, 'drift': horizontal_drift, 'base_x': x, 'phase': phase}) + reset_game() last_spawn = pygame.time.get_ticks() @@ -201,12 +223,17 @@ while True: if now - speed_increase_time > 30000: sushi_fall_speed += 1 cloud_speed_multiplier += 0.1 + petal_speed_multiplier += 0.1 speed_increase_time = now if now - last_cloud_spawn > cloud_spawn_interval: spawn_cloud() last_cloud_spawn = now + if now - last_petal_spawn > petal_spawn_interval: + spawn_petal() + last_petal_spawn = now + for cloud in clouds[:]: cloud['rect'].x += cloud['speed'] * cloud_speed_multiplier time_seconds = pygame.time.get_ticks() / 1000 @@ -214,12 +241,19 @@ while True: frequency = 1 vertical_offset = amplitude * math.sin(2 * math.pi * frequency * time_seconds + cloud['phase']) cloud['rect'].y = cloud['base_y'] + vertical_offset - if cloud['speed'] > 0 and cloud['rect'].left > WIDTH: clouds.remove(cloud) elif cloud['speed'] < 0 and cloud['rect'].right < 0: clouds.remove(cloud) + for petal in petals[:]: + petal['rect'].y += petal_fall_speed * petal_speed_multiplier + sway = 15 * math.sin(0.5 * pygame.time.get_ticks() / 1000 + petal['phase']) + drift_speed = 0.5 * petal_speed_multiplier + petal['rect'].x = petal['base_x'] + sway + petal['drift'] * petal_speed_multiplier + drift_speed * (pygame.time.get_ticks() / 16) + if petal['rect'].top > HEIGHT: + petals.remove(petal) + if not game_over: if keys[pygame.K_a]: move = -cat_speed @@ -280,6 +314,9 @@ while True: for cloud in clouds: screen.blit(cloud_img, cloud['rect']) + for petal in petals: + screen.blit(petal_img, petal['rect']) + screen.blit(cat_img, cat_rect) for obj in objects: diff --git a/maguro-game/petal.png b/maguro-game/petal.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf261b7e853314de98ba812b464c11a30319771 GIT binary patch literal 35080 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