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

为Pygame游戏添加带5秒冷却重置的超级跳跃功能

实现Pygame的冷却式超级跳跃功能

首先得在游戏初始化阶段添加两个变量,用来管理超级跳跃的冷却逻辑:

import pygame
pygame.init()

# 你的其他初始化代码(窗口、玩家、敌人等)...

# 超级跳跃冷却相关配置
super_jump_cooldown = 5000  # 冷却时长5秒,单位为毫秒
last_super_jump_time = 0    # 记录上次使用超级跳跃的时间点

然后修改键盘事件处理的代码,按下E键时先检查冷却时间是否达标,同时确保玩家处于地面状态:

if event.type == pygame.KEYDOWN: #if any key pressed
    if event.key == pygame.K_w: #checking for specific key
        if player_rect.bottom > 299:
            player_grav = -22.5
    if event.key == pygame.K_e: #checking for specific key
        current_time = pygame.time.get_ticks()  # 获取从游戏启动到现在的毫秒数
        # 同时满足冷却时间已过、玩家在地面两个条件,才触发超级跳跃
        if (current_time - last_super_jump_time >= super_jump_cooldown) and (player_rect.bottom > 299):
            player_grav = -52.5  # 设置更强的向上重力,数值可根据游戏手感调整
            last_super_jump_time = current_time  # 重置冷却计时器

补充说明

  • pygame.time.get_ticks()是Pygame自带的时间工具,用它计算时间差比手动维护定时器更简单稳定。
  • 超级跳跃的重力值我设置为-52.5,是普通跳跃的-22.5加上你原本写的-30,你可以根据实际游戏体验调整这个数值,绝对值越大跳得越高。
  • 如果想给玩家添加冷却提示,比如在屏幕上显示剩余冷却时间,可以在游戏主循环的绘制部分加入这段代码:
# 计算剩余冷却时间,确保数值不会为负
remaining_cooldown = max(0, super_jump_cooldown - (pygame.time.get_ticks() - last_super_jump_time))
# 生成冷却提示文本并绘制到屏幕
font = pygame.font.SysFont(None, 36)
cooldown_text = font.render(f"超级跳跃冷却: {remaining_cooldown//1000}s", True, (255,255,255))
screen.blit(cooldown_text, (10, 10))  # 显示在左上角,位置可自行调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:20:42