Пример #1
0
    List <Note> create_complex_notes(int index, int length, NoteSide side)
    {
        List <Note> notes = new List <Note>();

        for (int j = 0; j < length; ++j)
        {
            Note note = create_single_note(j + index, 1, side);
            // Debug.Log( "appear : " + note.m_appear_beat_index + ", disappear : " + note.m_disappear_beat_index );

            if (0 == j)
            {
                note.m_note_type = NoteType.NoteTypePush;
            }
            else if (length - 1 == j)
            {
                note.m_note_type = NoteType.NoteTypeRelease;
            }
            else
            {
                note.m_note_type = NoteType.NoteTypeKePressed;
            }
            notes.Add(note);
        }
        return(notes);
    }
Пример #2
0
    Note create_single_note(int index, int length, NoteSide side)
    {
        Note note = new Note();

        note.m_appear_beat_index = index;// - m_span_of_disappear_beat_count;
        if (index < 0)
        {
            note.m_disappear_beat_index = -1;
        }
        else
        {
            // note.m_disappear_beat_index = index + m_span_of_disappear_beat_count;
            note.m_disappear_beat_index = index + m_span_of_disappear_beat_count / 5;
            // Debug.Log( "create_single_note : index : " + index + ", m_span_of_disappear_beat_count : " + m_span_of_disappear_beat_count + ", note.m_disappear_beat_index : " + note.m_disappear_beat_index );
            // if( note.m_disappear_beat_index >= m_left_appear_note_indices.Count )
            // {
            //     note.m_disappear_beat_index = m_left_appear_note_indices.Count-1;
            // }
        }

        note.m_side      = side;
        note.m_length    = length;
        note.m_note_type = NoteType.NoteTypeSingle;
        return(note);
    }
Пример #3
0
 /// <summary>
 /// Constructs NormalNote
 /// </summary>
 /// <param name="time"></param>
 /// <param name="appearLength"></param>
 /// <param name="length"></param>
 /// <param name="centerIndex"></param>
 public NormalNote(double time, double appearLength, double length, int centerIndex, NoteSide side) : base(time)
 {
     AppearLength = appearLength;
     Length       = length;
     CenterIndex  = centerIndex;
     Side         = side;
 }
Пример #4
0
 void cache_note(int index, NoteSide side, Note note)
 {
     if (NoteSide.NoteSide_Left == side)
     {
         m_left_notes[index] = note;
     }
     else if (NoteSide.NoteSide_Right == side)
     {
         m_right_notes[index] = note;
     }
 }
Пример #5
0
    protected void generate_notes(int[] items)
    {
        for (int j = 0; j < items.Length; j += 3)
        {
            int      index  = items[j];
            int      length = items[j + 1];
            NoteSide side   = (NoteSide)(items[j + 2]);

            if (2 == length)
            {
                Note note = create_single_note(index, length, side);
                cache_note(index, side, note);
            }
            else
            {
                List <Note> notes = create_complex_notes(index, length, side);
                for (int k = 0; k < notes.Count; ++k)
                {
                    //dump_note( notes[k] );
                    cache_note(index + k, side, notes[k]);
                }
            }
        }
    }