关于游戏引擎(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 小时前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
by209994 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
姚瑞南5 小时前
【PRD】招投标商机雷达爬虫系统
人工智能·经验分享·笔记·爬虫·产品运营·产品经理
驱动小百科6 小时前
国产3A游戏《影之刃零》正式发售:售价及电脑配置要求介绍
游戏·影之刃零·影之刃零配置要求·影之刃零下载·影之刃零售价
m0_719640876 小时前
高校人工智能实验室搭建,2026年具身智能科研设备适配建议
人工智能·经验分享
Oiiouui7 小时前
Godot-GridGame架构DI容器全局联动设计
架构·游戏引擎·godot
信奥卷王8 小时前
[GESP202312 六级] 闯关游戏
游戏
德迅云安全-上官10 小时前
德迅游戏盾:面向 TCP 业务的分布式云安全防护方案
分布式·tcp/ip·游戏
康谋自动驾驶10 小时前
安全成为汽车“生命线”,康谋aiSim如何支撑组合驾驶辅助安全落地?
经验分享·智能驾驶
虹科数字化与AR10 小时前
安宝特方案丨汽车制造质检三步走:从导入CAD到数字化报告,一台iPad全搞定
经验分享·cad