You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pygame如何实现仅按住按键时触发功能 空格按下恐龙下蹲松开恢复

问题原因

当前代码仅在检测到空格键按下时修改恐龙状态为下蹲,没有补充松开空格键后的状态重置逻辑,导致dino_duck状态一直为True,恐龙无法恢复奔跑姿态。

修改方案

修改Dino类的update方法中按键判断的逻辑,独立处理空格键的按下/松开状态,松开时自动切回奔跑状态,修改后的核心代码如下:

def update(self, userInput):
    if self.dino_run:
        self.run()
    if self.dino_duck:
        self.duck()

    if self.step_index >= 10:
        self.step_index = 0

    if userInput[pygame.K_UP]:
        self.dino_run = True
        self.dino_duck = False
        self.Y_POS = 100
        self.Y_POS_DUCK = 130
    elif userInput[pygame.K_DOWN]:
        self.dino_run = True
        self.dino_duck = False
        self.Y_POS = 400
        self.Y_POS_DUCK = 430
    
    # 独立处理空格下蹲逻辑
    if userInput[pygame.K_SPACE]:
        self.dino_run = False
        self.dino_duck = True
    # 松开空格且无其他按键操作时自动恢复奔跑
    elif not userInput[pygame.K_UP] and not userInput[pygame.K_DOWN]:
        self.dino_run = True
        self.dino_duck = False
逻辑说明
  • 把空格键判断从原来的elif分支独立出来,避免被上下键的判断逻辑截断
  • 新增松开空格的分支判断,只要没有主动按上下键操作,就自动把恐龙状态切回奔跑
  • 原有上下键对应的跳跃、下落逻辑完全保留,不受改动影响

内容的提问来源于stack exchange,提问作者LR429

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:45:10