如何解决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:
# [...]
# [...]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。