优化点击功能,抬起触发

This commit is contained in:
chicrobot committed 2026-07-30 23:08:33 +08:00
1 parent e71c302c23
commit b8b95377ce
1 file changed
+21 -4
+21 -4
View File
@@ -18,7 +18,8 @@ class MainMenuScene(BaseScene):
"""
super().__init__(screen, clock)
self.button_status = False
self.mouse_status = False
self.mouse_status = None
self.mouse_last_status = None
self.debug_status = False
self.secret_keys = ["w","w","s","s","a","d","a","d"] # 上上下下左右左右
self.secret_key_compare_num = 0
@@ -56,6 +57,8 @@ class MainMenuScene(BaseScene):
# 更新鼠标位置
self.mouse_pos = pygame.mouse.get_pos()
# 更新当前帧鼠标状态
self.mouse_last_status = self.mouse_status
def handle_event(self, event):
"""
@@ -74,8 +77,22 @@ class MainMenuScene(BaseScene):
else:
self.secret_key_compare_num = 0
elif event.type == pygame.MOUSEBUTTONDOWN:
self.mouse_status = True
# 鼠标事件
if event.type == pygame.MOUSEBUTTONDOWN:
self.mouse_status = "down"
elif event.type == pygame.MOUSEBUTTONUP:
self.mouse_status = "up"
elif event.type == pygame.MOUSEMOTION:
self.mouse_status = "move"
def __click(self):
"""
判断是否点击鼠标:鼠标抬起时,上一帧的状态如果是按下或者移动则判断为点击
"""
if self.mouse_status == "up":
if self.mouse_last_status in ["down", "move"]:
return True
return False
def __show(self, info, dest=(0, 0)):
"""
@@ -127,7 +144,7 @@ class MainMenuScene(BaseScene):
and text_rect.x < self.mouse_pos[0] < text_rect.x + text_rect.width:
pygame.draw.rect(self.screen, Color.white, text_rect, 1)
# 如果点击鼠标
if self.mouse_status:
if self.__click():
# 点击第一个选项
if count == 0:
self.switch_to_scene("GameScene")