Pygame如何用同一个键启用和禁用一个功能



在制作暂停菜单时,我注意到我不能用同一个键暂停并继续游戏。

比方说,我想用逃生钥匙来做这件事。然后,如果我只是按下它,游戏将暂停几微秒,但随着pause()功能也随着转义键结束,游戏将继续。

我还注意到,如果我将用于结束pause((函数执行的键更改为与暂停游戏不同的键,一切都会正常,但我不希望这样。

那么,我应该怎么做才能防止这种情况发生,并能够暂停并一键继续比赛呢?

添加一个paused状态。根据paused的状态实现事件处理
使用pygame.time.get_ticks()测量时间。计算暂停模式应该结束的时间。达到时间时设置paused = False

paused = False
pause_end_time = 0
while running:
current_time = pygame.time.get_ticks()
if current_time > pause_end_time:
paused = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
paused = not paused
pause_end_time = current_time + 3000 # pause for 3 seconds
if not paused:
# game event handling
if event.type == pygame.KEYDOWN:
# [...]
# [...]

最新更新