/*------------------------------------------------------------------------- * 위치を추가 * intervalはミリ초지정 * 1000 = 1초 * ---------------------------------------------------------------------------*/ public void Add(Point pos, int interval) { // 각도계산리셋 if (m_req_reset_angle) { m_angle_list.Clear(); m_angle = -1; m_angle_precision = 0; m_req_reset_angle = false; } // 간격 m_interval += interval; // 2초未満の업데이트時は목록を업데이트しない if (m_interval < 2000) { return; } // 속도 SeaRoutes.SeaRoutePoint p1 = new SeaRoutes.SeaRoutePoint(transform.ToVector2(m_old_pos)); SeaRoutes.SeaRoutePoint p2 = new SeaRoutes.SeaRoutePoint(transform.ToVector2(pos)); float l = p1.Length(p2, m_map_size_x); // 距離 if (l < 100) { // 대きすぎる距離は無視する m_length_list.Add(new data(l, m_interval)); } // 각도 m_angle_list.Add(new data(pos, m_interval)); // 목록사이즈を조정する ajust_list_size(m_length_list); ajust_list_size(m_angle_list); // m_interval = 0; // 업데이트간격初期化 m_old_pos = pos; // 위치업데이트 // 속도を계산する clac_speed(); // 각도を계산する calc_angle(); }
/*------------------------------------------------------------------------- * 位置を追加 * intervalはミリ秒指定 * 1000 = 1秒 * ---------------------------------------------------------------------------*/ public void Add(Point pos, int interval) { // 角度計算リセット if (m_req_reset_angle) { m_angle_list.Clear(); m_angle = -1; m_angle_precision = 0; m_req_reset_angle = false; } // 間隔 m_interval += interval; // 2秒未満の更新時はリストを更新しない if (m_interval < 2000) { return; } // 速度 SeaRoutes.SeaRoutePoint p1 = new SeaRoutes.SeaRoutePoint(transform.ToVector2(m_old_pos)); SeaRoutes.SeaRoutePoint p2 = new SeaRoutes.SeaRoutePoint(transform.ToVector2(pos)); float l = p1.Length(p2, m_map_size_x); // 距離 if (l < 100) { // 大きすぎる距離は無視する m_length_list.Add(new data(l, m_interval)); } // 角度 m_angle_list.Add(new data(pos, m_interval)); // リストサイズを調整する ajust_list_size(m_length_list); ajust_list_size(m_angle_list); // m_interval = 0; // 更新間隔初期化 m_old_pos = pos; // 位置更新 // 速度を計算する clac_speed(); // 角度を計算する calc_angle(); }