如何实现跳舞毯的节拍和舞步判别的同步(200分)

  • 主题发起人 坏蟑螂
  • 开始时间

坏蟑螂

Unregistered / Unconfirmed
GUEST, unregistred user!
跳舞毯大家都玩儿过吧,
我玩儿的是PC上的模拟器,
此程序有点简陋,
就是音乐节拍和舞步判别同步不太好,
比如:当节拍来到时,程序却未去判断玩家是否踩下,
结果玩家成绩不准。

如果自己作这个程序,应该怎样实现同步呢?
比如:如何在程序中实时地得到音乐数据?

 
同步?
从PC硬盘版的跳舞毯看来,跳舞毯的节拍是事先定好的,并非实时采
集音乐得到的,可以用事先做好数据库的方法实现,每首歌都有单独的节
拍库,能否同步就看你的数据库是否与音乐合拍了。
另外,舞步的方向也是存在数据库中的。
 
zeropoint兄所言极是,
现在的跳舞毯模拟器就差不多是这样的,
只是没存到数据库里,
而是一个文件中,叫作脚谱文件,(*.msd)
它定义了所有的步伐、节奏,
其实音乐和它是无关运行的
所以有可能不同步。
 
如何在程序中实时地得到正在播放的音乐的数据?
 
我觉得和放 vcd 差不多,声音和出的图像保持同步就行了
 
你的电脑太老了吧,跳舞机对系统的要求比较高,CPU奔二266以上,内存40M以上。
 
好...坏蟑螂,可否给个语音卡的例子?
越麻烦越好,不胜感谢!
 
无人理了?
 
我觉得作脚谱文件还是首选,采集音乐拍子并非易事,之所以不同步可能是两个
线程没有协调好,分配的时间片有出入,你若作的话最好用多媒体定时器来控制
节拍,精确度会较高,另外用线程播放曲子,应该好一些。
脚谱文件应该允许用户自己友好生成,或者自己作,让用户老去你的站点down新的。
 
PC版的跳舞程序实际上是一边放音乐,
一边解读一个文件,叫作脚谱文件,(*.msd)
根据该文件中的数据,生成各种飞行的箭头,
而生成箭头的速度,是由该文件中的一个项目指定的,
即:BPM(Beat Per Minute)。
当游戏开始时,同时开始放音乐,同时开始解读脚谱文件,
但在游戏过程中,并不再进行任何同步,
如果BPM设定不准,两者就失去同步了。
一首差一拍就意味着有一大半拍子不准。
就算我们假定BPM是准的,但我们仍不能保证音乐的
初相就是0,一首歌有可能是从一拍中间开始唱的。

 
还有人有兴趣吗?
 
你能保证图像同步吗?即箭头是同步的?
 
实际上是一个问题,
只要实时地得到了音乐节拍,
也就能适时地创建箭头,
和适时地判断输入。
 
就算可以抓到音乐也无法分析它的节拍呀?
 
是比较难,但并非不行,
这应该是语音识别方面的问题,
 
>>这应该是语音识别方面的问题,
倒没有语音识别那么难,
>>实际上是一个问题,
不完全一样,图像要难一些,
关键是要有校准的办法,可以建立一个与音乐时间等长的数组,记录步法,如
data[100]=5,即说明第100秒时,应踩5号踏板,
用定时器
定时校准流程,之所以建立数组,是为了查询的快,也可用链表(可能更好),
一旦查到节拍线程中有错,即改变信号量,通知线程放慢或加速,这样可能
导致丢步,但总比不搭调强。
 
实际上我现在就是用的多媒体定时器,
而且基本已解决了图象和步伐的同步,
只差这两者与音乐的同步了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
400
import
I
顶部