修复暂停了但是没有完全暂停的bug

This commit is contained in:
星外之神 2022-04-07 23:22:39 +08:00
parent ada477c5a5
commit e29a1a2567

View File

@ -18,6 +18,10 @@ class Level(tool.State):
self.map_y_len = c.GRID_Y_LEN
self.map = map.Map(c.GRID_X_LEN, self.map_y_len)
# 暂停状态
self.pause = False
self.pauseTime = 0
# 默认显然不用显示菜单
self.showLittleMenu = False
@ -112,7 +116,7 @@ class Level(tool.State):
# 更新函数每帧被调用,将鼠标事件传入给状态处理函数
def update(self, surface, current_time, mouse_pos, mouse_click):
self.current_time = self.game_info[c.CURRENT_TIME] = current_time
self.current_time = self.game_info[c.CURRENT_TIME] = self.pvzTime(current_time)
if self.state == c.CHOOSE:
self.choose(mouse_pos, mouse_click)
elif self.state == c.PLAY:
@ -120,6 +124,14 @@ class Level(tool.State):
self.draw(surface)
def pvzTime(self, current_time):
# 扣除暂停时间
if not self.pause:
self.beforePauseTime = current_time - self.pauseTime
else:
self.pauseTime = current_time - self.beforePauseTime
return self.beforePauseTime
def initBowlingMap(self):
print('initBowlingMap')
for x in range(3, self.map.width):
@ -280,11 +292,14 @@ class Level(tool.State):
def play(self, mouse_pos, mouse_click):
# 如果暂停
if self.showLittleMenu:
# 设置暂停状态
self.pause = True
# 暂停播放音乐
pg.mixer.music.pause()
if mouse_click[0]:
if self.checkReturnClick(mouse_pos):
# 终止暂停,停止显示菜单
self.pause = False
self.showLittleMenu = False
# 继续播放音乐
pg.mixer.music.unpause()