예제 #1
0
        public void InsertScoreBackwardWithNote(NoteBook noteBook, ScoreBook database, Score baseScore, ScoreBook newScores)
        {
            int initialScoreTick = baseScore.StartTick;

            InsertScoreBackward(database, baseScore, newScores);
            //score以降に含まれるすべてのノーツに対して位置をずらす
            int deltaTick = 0;

            newScores.ForEach(x => deltaTick += ScoreInfo.MaxBeatDiv * x.BeatNumer / x.BeatDenom);
            noteBook.RelocateNoteTickAfterScoreTick(initialScoreTick, deltaTick);
            UpdateNoteLocation?.Invoke(this);
        }
예제 #2
0
 public void InsertScoreForwardWithNote(NoteBook noteBook, ScoreBook database, Score baseScore, ScoreBook newScores)
 {
     if (database.Next(baseScore) == null)
     {
         SetScore(database, newScores);
     }
     else
     {
         InsertScoreBackwardWithNote(noteBook, database, database.Next(baseScore), newScores);
     }
 }
예제 #3
0
        public void InsertScoreBackwardWithNote(NoteBook noteBook, ScoreBook scoreBook, Score score, int beatNumer, int beatDenom, int barCount)
        {
            int initialScoreTick = score.StartTick;

            InsertScoreBackward(scoreBook, score, beatNumer, beatDenom, barCount);
            //score以降に含まれるすべてのノーツに対して位置をずらす
            int deltaTick = barCount * ScoreInfo.MaxBeatDiv * beatNumer / beatDenom;

            noteBook.RelocateNoteTickAfterScoreTick(initialScoreTick, deltaTick);
            UpdateNoteLocation?.Invoke(this);
        }
예제 #4
0
 public void InsertScoreForwardWithNote(NoteBook noteBook, ScoreBook scoreBook, Score score, int beatNumer, int beatDenom, int barCount)
 {
     if (scoreBook.Next(score) == null)
     {
         SetScore(scoreBook, beatNumer, beatDenom, barCount);
     }
     else
     {
         InsertScoreBackwardWithNote(noteBook, scoreBook, scoreBook.Next(score), beatNumer, beatDenom, barCount);
     }
 }