当前位置: 首页 > news >正文

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

引擎默认底层

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

数学

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

bpm120 = 60s120拍

2. 每拍子时间= 60/bpm

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

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

在120bpm下,1拍是0.5s。

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

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

下面是伪代码

var bpm = 120
var paizi_time = 60.0/120 #这样才有余数
var paizi = -1
var paizi_zhen = paizi_time * 60func _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 = 0set_text(str(paizi))#设置某个label的字

http://www.lryc.cn/news/95078.html

相关文章:

  • 【Go】实现一个代理Kerberos环境部分组件控制台的Web服务
  • Spring Security 6.x 系列【63】扩展篇之匿名认证
  • 供应链管理系统有哪些?
  • 如何在PADS Logic中查找器件
  • Android 生成pdf文件
  • Kafka 入门到起飞 - 生产者发送消息流程解析
  • 基于单片机智能台灯坐姿矫正器视力保护器的设计与实现
  • 欧姆龙以太网模块如何设置ip连接 Kepware opc步骤
  • PLEX如何搭建个人局域网的视频网站
  • java学习02
  • libcurl库使用实例
  • 大数据存储架构详解:数据仓库、数据集市、数据湖、数据网格、湖仓一体
  • ESP32(MicroPython) 网页控制五自由度机械臂
  • 前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
  • huggingface新作品:快速和简便的训练模型
  • 利用鸿鹄优化共享储能的SCADA 系统功能,赋能用户数据自助分析
  • noSQL语句练习
  • Spring:Bean生命周期
  • Vue自定义指令
  • SpringBoot+JWT实现单点登录解决方案
  • 中国国债发行数据集(2002-2023)
  • 曲师大2023大一新生排位赛-C.String题解
  • Linux Ubuntu安装RabbitMQ服务
  • 什么是测试用例?如何设计?
  • Maven —— 项目管理工具
  • Ubuntu 命令行编辑文件后如何保存退出
  • AHB协议理解
  • 【UE5 多人联机教程】01-创建主界面
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 五)
  • React(3)