From 1ff35871dcbdad2d2cb1824be336131b9c61b9f9 Mon Sep 17 00:00:00 2001 From: chicrobot Date: Thu, 30 Jul 2026 01:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9B=A8=E6=BB=B4=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scenes/main_menu_scene.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/scenes/main_menu_scene.py b/src/scenes/main_menu_scene.py index 02a1d9a..27675b4 100644 --- a/src/scenes/main_menu_scene.py +++ b/src/scenes/main_menu_scene.py @@ -33,7 +33,7 @@ class MainMenuScene(BaseScene): self.rain_max = 50 self.rain_list = [] # 雨滴生命周期 - self.rain_live_max = 6 + self.rain_live_max = 10 # 初始化雨滴 self.init_rain(self.rain_max) @@ -148,13 +148,17 @@ class MainMenuScene(BaseScene): # 当状态在区间1时绘制雨滴线条 if rain["status"] <= self.rain_live_max - 3: - # 线条长度 - line_len = 10*(self.rain_live_max - rain["status"]) + # 设计高度 + rain_high = 10 * self.rain_live_max # 起点位置 + # x坐标与最后落点x一致 x = rain["dest"][0] - y = rain["dest"][1] - line_len + # y坐标为落点位置向上移动设计高度后,加上生命周期去掉尾帧后落下的位置 + y = (rain["dest"][1] - rain_high) + (rain["status"] * (self.rain_live_max + 2)) + y2 = y + 10 line_start_point = (x, y) - pygame.draw.line(self.screen, Color.white, line_start_point, rain["dest"], 1) + line_end_point = (x, y2) + pygame.draw.line(self.screen, Color.white, line_start_point, line_end_point, 1) # 状态在区间2时绘制涟漪 elif self.rain_live_max - 3 < rain["status"]: point_width = rain["status"] - (self.rain_live_max - 3) @@ -164,7 +168,7 @@ class MainMenuScene(BaseScene): # pygame.draw.ellipse(self.screen, Color.white, rain_point_rect, 1) # 雨滴状态每d_status毫秒变化一次 - d_status = 200 + d_status = 30 if rain["timer"] > d_status: rain["status"] += 1 rain["timer"] -= d_status # 不设为0,避免累计时间误差