关于游戏引擎(godot)对齐音乐bpm的技术

引擎默认底层

  1. _process(): 每秒钟调用60次(无限的)

数学

  1. bpm=1分钟节拍数量=60s节拍数量

bpm120 = 60s120拍

  1. 每拍子时间= 60/bpm

  2. 每个拍子触发周期所需要的帧数= 每拍子时间*60(帧率)

这个是从帧数级别上对齐拍子的时间,对于游戏引擎来说,用帧数更加适合高频触发程序

在120bpm下,1拍是0.5s。

当然这个代码有极限的,不能超过或者小于那个1/60 的0.1666667 因为帧的最小单位是1,不是0.5.

我不知道这个算不算音帧程序

下面是伪代码

python 复制代码
var bpm = 120
var paizi_time = 60.0/120 #这样才有余数
var paizi = -1
var paizi_zhen = paizi_time * 60

func _process():
    if Engine.get_idle_frames()%int(paizi_zhen) == 0:
        paizi +=1
    # 4/4拍
    if paizi == 4:
        paizi = 0
    # 3/4拍
    if paizi == 3:
        paizi = 0
     set_text(str(paizi))#设置某个label的字
相关推荐
恒锐丰科技林技术员1 小时前
EG2302 半桥驱动芯片详解:高压半桥高性价比栅极驱动方案
经验分享·嵌入式硬件·硬件工程
BestHeaker6 小时前
制造业 MES 开发入门:和互联网业务开发的 5 个本质差异(一)
数据库·经验分享·制造业·mes
烛阴6 小时前
Godot 4 入门(02):用一个玩家场景理解节点、场景与实例
godot
IT小白杨7 小时前
Facebook广告账户环境隔离实战:从指纹自洽到代理固定的完整工程方案
大数据·经验分享·架构·facebook·指纹浏览器
wukong267 小时前
支持GEO关键词挖掘的优化系统推荐|2026AI获客核心工具
经验分享
畅想视界ThinkView8 小时前
医美光电仪器配套触控终端怎么选?2026年皮肤检测设备市场53亿,这台“小屏“决定顾客体验
经验分享
wgslucky9 小时前
Godot GDScript初学者遇到的问题记录
游戏引擎·godot
wind100329 小时前
DLSS5 开启保姆级教程:RTX20/30/40 显卡通用 鸣潮 / 异环 / 绝区零全适配
游戏·电脑·英伟达·dlss·鸣潮
熊野君10 小时前
第 7 章 AI时代产品经理新增能力
大数据·人工智能·经验分享·职场和发展·产品经理
恒锐丰科技林技术员11 小时前
EG1191 宽压降压 DC‑DC 芯片解析:高性价比工业电源方案
经验分享·嵌入式硬件·硬件工程