public void Hold_judge(Touch_Manager.My_touch my_Touch, float hold_end_time) { Note_data note_Data = Dc.Get_any_note_data(my_Touch.Hold_note_line, my_Touch.Hold_note_data_index); float lag = Mathf.Abs((float)note_Data.hold_end_time - hold_end_time); int judgetype = -1; if (lag <= perfectTime) { //Debug.Log("Hold_Judge PERFECT!!! "); //debug_Disp_Info.disp_judge(raw_lag); judgetype = 1; } else if (lag <= greatTime) { //Debug.Log("Hold_Judge GREAT!! "); //debug_Disp_Info.disp_judge(raw_lag); judgetype = 2; } else if (lag <= goodTime) { //Debug.Log("Hold_Judge GREAT!! "); //debug_Disp_Info.disp_judge(raw_lag); judgetype = 3; } else if (lag <= poorTime) { //Debug.Log("Hold_Judge BAD… "); judgetype = 4; } else { judgetype = 4; } Hold_end(judgetype, my_Touch.Hold_note_line, my_Touch.Hold_note_data_index); }
public bool Is_hold_within_range(Vector2 touchpos, Touch_Manager.My_touch my_Touch) { Note_data note_Data = Dc.Get_any_note_data(my_Touch.Hold_note_line, my_Touch.Hold_note_data_index); if (touchpos.x <= note_Data.note_end_pos.x + touchwidth && touchpos.x >= note_Data.note_end_pos.x - touchwidth) { if (touchpos.y <= note_Data.note_end_pos.y + touchwidth && touchpos.y >= note_Data.note_end_pos.y - touchwidth) { return(true); } } return(false); }
/// <summary> /// 判定時に最初に呼ばれる処理 /// </summary> /// <param name="touchType">0がタッチorホールドの最初、1がフリック</param> /// <param name="my_Touch"></param> public void Main_judge(int touchType, Touch_Manager.My_touch my_Touch) { //Debug.Log("judege "); note_Data_line1 = Dc.Get_Judge_note_data(1); if (Dc.Note_data_list_line2.Length != 0) { note_Data_line2 = Dc.Get_Judge_note_data(2); } if (touchType == 0) //タッチorホールド始点のとき { if (Is_touch_within_range(my_Touch.touchPos)) { int hold_note_data_index = 0; Note_data note_Data = new Note_data(); switch (within_range_line) { case 1: hold_note_data_index = Dc.judge_Index.get_note_data_line1; note_Data = note_Data_line1; break; case 2: hold_note_data_index = Dc.judge_Index.get_note_data_line2; note_Data = note_Data_line2; break; default: break; } if (note_Data.judged == false) //まだ未判定 { if (note_Data.noteType == 0 || note_Data.noteType == 2) { Time_judge(note_Data, within_range_line, hold_note_data_index, my_Touch.touchTime, my_Touch.fingerID); } } else { return; } } } else if (touchType == 1) //フリックのとき { if (Is_Swipe_within_range(my_Touch.touchPos)) { Note_data note_Data = new Note_data(); switch (within_range_line) { case 1: //hold_note_data_index = Dc.judge_Index.get_note_data_line1;//note_data.made note_Data = note_Data_line1; break; case 2: //hold_note_data_index = Dc.judge_Index.get_note_data_line2; note_Data = note_Data_line2; break; default: break; } if (note_Data.judged == false) //まだ未判定 { Time_judge(note_Data, within_range_line, -1, my_Touch.touchTime, my_Touch.fingerID); } else { return; } } } }