forked from zhiyuan/Project1
优化点击功能,抬起触发
This commit is contained in:
1 parent
e71c302c23
commit
b8b95377ce
1 file changed
+21
-4
@@ -18,7 +18,8 @@ class MainMenuScene(BaseScene):
|
|||||||
"""
|
"""
|
||||||
super().__init__(screen, clock)
|
super().__init__(screen, clock)
|
||||||
self.button_status = False
|
self.button_status = False
|
||||||
self.mouse_status = False
|
self.mouse_status = None
|
||||||
|
self.mouse_last_status = None
|
||||||
self.debug_status = False
|
self.debug_status = False
|
||||||
self.secret_keys = ["w","w","s","s","a","d","a","d"] # 上上下下左右左右
|
self.secret_keys = ["w","w","s","s","a","d","a","d"] # 上上下下左右左右
|
||||||
self.secret_key_compare_num = 0
|
self.secret_key_compare_num = 0
|
||||||
@@ -56,6 +57,8 @@ class MainMenuScene(BaseScene):
|
|||||||
|
|
||||||
# 更新鼠标位置
|
# 更新鼠标位置
|
||||||
self.mouse_pos = pygame.mouse.get_pos()
|
self.mouse_pos = pygame.mouse.get_pos()
|
||||||
|
# 更新当前帧鼠标状态
|
||||||
|
self.mouse_last_status = self.mouse_status
|
||||||
|
|
||||||
def handle_event(self, event):
|
def handle_event(self, event):
|
||||||
"""
|
"""
|
||||||
@@ -74,8 +77,22 @@ class MainMenuScene(BaseScene):
|
|||||||
else:
|
else:
|
||||||
self.secret_key_compare_num = 0
|
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)):
|
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:
|
and text_rect.x < self.mouse_pos[0] < text_rect.x + text_rect.width:
|
||||||
pygame.draw.rect(self.screen, Color.white, text_rect, 1)
|
pygame.draw.rect(self.screen, Color.white, text_rect, 1)
|
||||||
# 如果点击鼠标
|
# 如果点击鼠标
|
||||||
if self.mouse_status:
|
if self.__click():
|
||||||
# 点击第一个选项
|
# 点击第一个选项
|
||||||
if count == 0:
|
if count == 0:
|
||||||
self.switch_to_scene("GameScene")
|
self.switch_to_scene("GameScene")
|
||||||
|
|||||||
Reference in new issue
Block a user