ゲームのプログラミングに問題があります。MIDIファイルについてよく知らないので、テキストに変換してからゲームにロードします。メモが表示されますが、数秒後に位置が同期しなくなります...誰か理由を教えてもらえますか? 特に私は少し初心者なので...これはデータを含むファイルの例です:
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
ゲーム内のすべてのコードは 1 秒あたり 60 回実行されます (したがって、ゲームは 60 FPS になります)。ゲームが行う 1 ステップ (1/60) ごとに、ノートは 2.5 3D 単位で移動します。したがって、これは私がメモを配置するために使用する式です。
_pos = notePosition/3/2.5; // ここで、notePosition は MIDI ノートの絶対位置、2.5 はノートが 1/60 秒ごとに行う動きです。3 が何かはわかりませんが、正しく開始されているように見えますが、その後、曲が同期しなくなります...
では、MIDI ノートをロードするための正しい式は何ですか (曲ファイルは MIDI ではありませんが、すべての位置は実際の MIDI 位置に対応しています)。
事前に感謝し、私の下手な英語を許してください!