我遇到麻煩編程我的遊戲。由於我不太瞭解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位置)?
提前致謝,請原諒我的英文不好!
如何衡量遊戲的60赫茲時鐘? –
按幀每秒... – FonzTech
如何?你使用什麼代碼定時器? –