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