2014-06-05 75 views
0

我遇到麻煩編程我的遊戲。由於我不太瞭解MIDI文件,我將它們轉換爲文本,然後將其加載到我的遊戲中。注意出現,但他們的位置幾秒鐘後不同步...有人可以告訴我爲什麼嗎? Expecially因爲我有點新手... 這是一個包含數據的文件的一個例子:MIDI音符位置到3D空間

RESOLUTION 480 
TEMPO 
0 422000 
480 423000 
960 422000 
1440 423000 
1920 422000 
2400 423000 
2880 422000 
3360 423000 
3840 422000 
4320 423000 
4800 422000 
5280 423000 
5760 420000 
6240 420998 
6720 426000 
7200 427000 
7680 426000 
8160 408000 
8640 422000 
9120 423000 
9600 422000 
10080 426000 
10560 427000 
11040 426000 
11520 413999 
12480 408998 
13440 434999 
14400 415000 
15840 413999 
16320 415000 
16800 423999 
17280 415997 
END 
TIMESPANS 
0 6 
20160 9 
24480 6 
162720 3 
164160 6 
END 
PART GUITAR 
5760 0 420 
6240 1 0 
6720 2 0 
7200 3 0 
7680 2 0 
8160 1 0 
8640 0 420 
9120 1 0 
9600 2 0 
10080 3 0 
10560 2 0 
11040 1 0 
11520 0 420 
12000 1 0 
12480 2 0 
12960 3 0 
13440 2 0 
13920 1 0 
14400 0 420 
14880 1 0 
15360 2 0 
15840 3 0 
16320 2 0 
16800 4 0 
17280 1 0 
17280 4 0 
END 

在我的遊戲中的所有代碼是每秒(因此執行60次,遊戲將有60 FPS)。遊戲進行的每一步(1/60),筆記移動2.5個3D單位。 所以,這是我用來放置筆記的公式:

_pos = notePosition/3/2.5; //其中notePosition是MIDI音符的ABSOLUTE位置,2.5是音符每1/60秒的移動。我不知道什麼是3,但它似乎開始正確,然後歌曲不同步...

那麼,加載MIDI音符的正確公式是什麼(儘管歌曲文件不是MIDI,所有的位置都對應於實際的MIDI位置)?

提前致謝,請原諒我的英文不好!

+0

如何衡量遊戲的60赫茲時鐘? –

+0

按幀每秒... – FonzTech

+0

如何?你使用什麼代碼定時器? –

回答