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 秒执行一次特定逻辑:

相关推荐
小李子呢02112 小时前
前端八股CSS(2)---动画的实现方式
前端·javascript
mxwin2 小时前
Unity URP 下抓取当前屏幕内容实现扭曲、镜子与全局模糊效果
unity·游戏引擎·shader
竹林8187 小时前
RainbowKit 快速集成多链钱包连接:从“连不上”到丝滑切换的踩坑实录
前端·javascript
南無忘码至尊7 小时前
Unity学习90天-第2天-认识Unity生命周期函数并用 Update 控制物体移动,FixedUpdate 控制物理
学习·unity·游戏引擎
嗜好ya8 小时前
解决 Vite 项目中 import.meta.env 变量为 undefined 的问题
前端·javascript·vue.js
心连欣8 小时前
JS算法入门:图解“冒泡排序”,彻底搞懂双重循环的奥义
前端·javascript
浩星9 小时前
「Vue3 + Cesium 最佳实践」完整工程化方案
前端·javascript·vue.js
小李子呢02119 小时前
前端八股Vue(5)---v-if和v-show
前端·javascript·vue.js
YiuChauvin9 小时前
vue2中使用 AntV G6
javascript·vue.js