godot在_process()函数实现非阻塞延时触发逻辑

python 复制代码
extends Node2D

# 用于累加 delta 的变量
var elapsed_time = 0
# 设定计时周期,单位为秒
var interval = 3

func _process(delta):
    # 累加 delta 到 elapsed_time
    elapsed_time += delta
    # 检查是否达到了设定的时间间隔
    if elapsed_time >= interval:
        # 执行每 3 秒要做的逻辑
        print("每 3 秒执行一次的逻辑被触发")
        # 重置 elapsed_time,以便开始下一个计时周期
        elapsed_time = 0

在游戏开发中,我们常常利用游戏引擎每一帧传递的 delta 值(代表从上一帧到当前帧所经过的时间,单位通常为秒)来实现计时逻辑。下面分别以 Godot 引擎和 Unity 引擎为例,介绍如何通过累加 delta 来判断每几秒的逻辑。

Godot 引擎

在 Godot 里,_process 函数会在每一帧被调用,并且会传入 delta 参数。以下是一个示例代码,展示如何通过累加 delta 来实现每 3 秒执行一次特定逻辑:

相关推荐
oooo_z7 分钟前
美股历史K线数据API接口选型指南:iTick覆盖1分钟到月线全周期
服务器·前端·javascript
mONESY35 分钟前
LangChain 结构化输出三兄弟:ToolCall、OutputParser、withStructuredOutput 彻底讲透
javascript
狂人开飞机38 分钟前
15、音频系统
游戏引擎·godot
知兀44 分钟前
【前端】受控和非受控组件
前端·javascript·react
晴天161 小时前
JavaScript 与 Java 垃圾回收机制对比
java·开发语言·javascript
狂人开飞机1 小时前
16、粒子线条与视觉特效
游戏引擎·godot
huali1 小时前
vue-split-screen:让 Vue Router 的导航轨迹变成两个页面
前端·javascript·vue.js
bug总结1 小时前
uniapp总结
开发语言·前端·javascript
走到天涯海角2 小时前
pinia和Vuex的区别以及使用pinia
开发语言·前端·javascript
晴天162 小时前
Web 页面内存溢出与 CPU 溢出:区别、诊断与最佳实践
前端·javascript