コード例 #1
0
        /// <summary>
        /// 前回のBPM変化から譜面時間を計算する
        /// </summary>
        public void InitializeStartTime(MusicTempoData beforeTempo)
        {
            // 前回のBPM変化からこのBPM変化までのカウント
            int diffCount = TotalPosition - beforeTempo.TotalPosition;

            int BaseTemp = diffCount * 24000;
            int divTemp  = MusicConst.POSITION_FINENESS * beforeTempo.BpmLargeScaleValue;

            float measureCount = (float)diffCount / MusicConst.POSITION_FINENESS;
            float bpmTime      = 24000f / beforeTempo.BpmLargeScaleValue;

            StartTime = beforeTempo.StartTime + measureCount * bpmTime;
        }
コード例 #2
0
 /// <summary>
 /// リスト内のテンポデータを初期化する
 /// </summary>
 public void PrecomputeTime()
 {
     // 初期化済みの場合は改めて初期化する必要はない
     if (isBpmInitialized)
     {
         return;
     }
     for (int index = 1; index < tempoDataList.Count; ++index)
     {
         MusicTempoData tempo = tempoDataList[index];
         tempo.InitializeStartTime(tempoDataList[index - 1]);
     }
 }