diff --git a/3rdparty/resource/minitouch/maatouch/minitouch b/3rdparty/resource/minitouch/maatouch/minitouch index 02db3af473..3673f3ff0a 100644 Binary files a/3rdparty/resource/minitouch/maatouch/minitouch and b/3rdparty/resource/minitouch/maatouch/minitouch differ diff --git a/resource/config.json b/resource/config.json index d1ce21aef9..754f8f9077 100644 --- a/resource/config.json +++ b/resource/config.json @@ -23,7 +23,7 @@ "armeabi-v7a", "armeabi" ], - "swipeWithPauseRequiredDistance": 50, + "swipeWithPauseRequiredDistance": 20, "swipeWithPauseRequiredDistance_Doc": "暂停下干员滑动多远距离后开始按暂停", "penguinReport": { "Doc": "企鹅物流汇报: https://penguin-stats.cn/", diff --git a/src/MaaCore/Controller.cpp b/src/MaaCore/Controller.cpp index 7641c0d41b..b22628e1d6 100644 --- a/src/MaaCore/Controller.cpp +++ b/src/MaaCore/Controller.cpp @@ -1186,7 +1186,14 @@ bool asst::Controller::swipe_without_scale(const Point& p1, const Point& p2, int if (need_pause && std::sqrt(std::pow(cur_x - _x1, 2) + std::pow(cur_y - _y1, 2)) > opt.swipe_with_pause_required_distance) { need_pause = false; - pause_future = std::async(std::launch::async, [&]() { press_esc(); }); + if (m_use_maa_touch) { + constexpr int EscKeyCode = 111; + toucher.key_down(EscKeyCode); + toucher.key_up(EscKeyCode, 0); + } + else { + pause_future = std::async(std::launch::async, [&]() { press_esc(); }); + } } if (cur_x < 0 || cur_x > m_minitouch_props.max_x || cur_y < 0 || cur_y > m_minitouch_props.max_y) { continue; diff --git a/src/MaaCore/Controller.h b/src/MaaCore/Controller.h index 69c7d10cbb..719ddc1561 100644 --- a/src/MaaCore/Controller.h +++ b/src/MaaCore/Controller.h @@ -243,6 +243,13 @@ namespace asst { return m_input_func(up_cmd(wait_ms, with_commit, contact)); } + bool key_down(int key_code, int wait_ms = DefaultClickDelay, bool with_commit = true) { + return m_input_func(key_down_cmd(key_code, wait_ms, with_commit)); + } + bool key_up(int key_code, int wait_ms = DefaultClickDelay, bool with_commit = true) + { + return m_input_func(key_up_cmd(key_code, wait_ms, with_commit)); + } bool wait(int ms) { return m_input_func(wait_cmd(ms)); } void clear() noexcept { m_wait_ms_count = 0; } @@ -293,6 +300,28 @@ namespace asst return str; } + [[nodiscard]] std::string key_down_cmd(int key_code, int wait_ms = DefaultClickDelay, bool with_commit = true) + { + char buff[64] = { 0 }; + sprintf(buff, "k %d d\n", key_code); + std::string str = buff; + + if (with_commit) str += commit_cmd(); + if (wait_ms) str += wait_cmd(wait_ms); + return str; + } + + [[nodiscard]] std::string key_up_cmd(int key_code, int wait_ms = DefaultClickDelay, bool with_commit = true) + { + char buff[64] = { 0 }; + sprintf(buff, "k %d u\n", key_code); + std::string str = buff; + + if (with_commit) str += commit_cmd(); + if (wait_ms) str += wait_cmd(wait_ms); + return str; + } + [[nodiscard]] std::string wait_cmd(int ms) { m_wait_ms_count += ms; diff --git a/src/MaaWpfGui/Views/UserControl/ConnectSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/ConnectSettingsUserControl.xaml index 19b8a4cef0..262e1bd0af 100644 --- a/src/MaaWpfGui/Views/UserControl/ConnectSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/ConnectSettingsUserControl.xaml @@ -25,6 +25,7 @@ + + \ No newline at end of file diff --git a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml index cec1c95ca4..99975350eb 100644 --- a/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/RoguelikeSettingsUserControl.xaml @@ -15,7 +15,6 @@ - - - - \ No newline at end of file