Python time库能否实现循环定时终止?轻量游戏开发需求咨询
使用Python time库实现定时终止游戏循环的方案
当然可以用time库实现这个需求,轻量游戏场景下完全够用,以下是两种简单可靠的实现方式:
方法一:基于time.time()的实时时长检查
time.time()会返回当前时间的时间戳(从1970年1月1日到现在的秒数),我们可以在游戏启动时记录起始时间戳,每次循环迭代时计算已运行时长,达到指定时间就终止循环。
示例代码:
import time def run_game(): # 记录游戏启动时间 start_timestamp = time.time() # 游戏主循环标志 is_running = True while is_running: # ---------------------- # 这里编写你的游戏逻辑代码 print("游戏正在运行...") time.sleep(0.3) # 模拟游戏帧间隔,可根据实际调整 # ---------------------- # 计算已运行时长(秒) elapsed = time.time() - start_timestamp # 达到1分钟(60秒)时终止循环 if elapsed >= 60: is_running = False # 循环结束后输出结果 print(f"游戏自动终止,总运行时长:{elapsed:.2f}秒") # 这里可以添加结果统计、得分输出等逻辑 if __name__ == "__main__": run_game()
方法二:使用高精度计时器time.perf_counter()
如果需要更精确的计时(比如对时长要求到毫秒级),可以用time.perf_counter(),它专门用于测量短时间间隔,精度比time.time()更高,用法和上面完全一致:
import time def run_game(): start_time = time.perf_counter() is_running = True while is_running: # 游戏逻辑代码 print("游戏运行中...") time.sleep(0.3) elapsed = time.perf_counter() - start_time if elapsed >= 60: is_running = False print(f"游戏终止,精确运行时长:{elapsed:.3f}秒") if __name__ == "__main__": run_game()
注意事项
- 这种在循环内检查时长的方式,不会影响轻量游戏的性能,因为检查操作的开销可以忽略不计。
- 如果你的游戏循环本身有固定的帧率(比如每秒30帧),可以把时长检查放在每帧的末尾,确保每次迭代都能及时判断是否到时间。
内容的提问来源于stack exchange,提问作者Doggen
相关产品推荐
相关产品推荐

