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); }
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); }
/// <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; }
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; } }
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]); } } } }