From 32523ac776702613ccae92eca8f45ce303471b57 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 22 Apr 2023 14:31:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=BB=91=E5=8A=A8=E5=BB=B6=E8=BF=9F=EF=BC=8C=E6=94=BE=E5=88=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/config.json | 2 ++ src/MaaCore/Config/GeneralConfig.cpp | 2 ++ src/MaaCore/Config/GeneralConfig.h | 2 ++ src/MaaCore/Controller/MinitouchController.cpp | 6 ++---- src/MaaCore/Controller/PlayToolsController.cpp | 9 ++++----- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/resource/config.json b/resource/config.json index a167c01d31..e99028faf7 100644 --- a/resource/config.json +++ b/resource/config.json @@ -14,6 +14,8 @@ "adbExtraSwipeDuration_Doc": "额外的滑动持续时间:adb有bug,同样的参数,偶尔会划得非常远。额外做一个短程滑动,把之前的停下来。若小于0,则关闭额外滑动功能", "adbSwipeDurationMultiplier": 10.0, "adbSwipeDurationMultiplier_Doc": "adb 滑动延迟倍数", + "minitouchSwipeDefaultDuration": 200, + "minitouchSwipeExtraEndDelay": 150, "minitouchExtraSwipeDist": 100, "minitouchExtraSwipeDuration": 200, "minitouchProgramsOrder": [ diff --git a/src/MaaCore/Config/GeneralConfig.cpp b/src/MaaCore/Config/GeneralConfig.cpp index d1f73cf822..787d736f5f 100644 --- a/src/MaaCore/Config/GeneralConfig.cpp +++ b/src/MaaCore/Config/GeneralConfig.cpp @@ -18,6 +18,8 @@ bool asst::GeneralConfig::parse(const json::value& json) m_options.adb_swipe_duration_multiplier = options_json.get("adbSwipeDurationMultiplier", 10.0); m_options.minitouch_extra_swipe_dist = options_json.get("minitouchExtraSwipeDist", 100); m_options.minitouch_extra_swipe_duration = options_json.get("minitouchExtraSwipeDuration", -1); + m_options.minitouch_swipe_default_duration = options_json.get("minitouchSwipeDefaultDuration", 200); + m_options.minitouch_swipe_extra_end_delay = options_json.get("minitouchSwipeExtraEndDelay", 150); m_options.swipe_with_pause_required_distance = options_json.get("swipeWithPauseRequiredDistance", 50); if (auto order = options_json.find("minitouchProgramsOrder")) { m_options.minitouch_programs_order.clear(); diff --git a/src/MaaCore/Config/GeneralConfig.h b/src/MaaCore/Config/GeneralConfig.h index ea833e1224..ad43d9a189 100644 --- a/src/MaaCore/Config/GeneralConfig.h +++ b/src/MaaCore/Config/GeneralConfig.h @@ -39,6 +39,8 @@ namespace asst double adb_swipe_duration_multiplier = 0; // adb 滑动持续时间倍数 int minitouch_extra_swipe_dist = 0; int minitouch_extra_swipe_duration = -1; + int minitouch_swipe_default_duration = 0; + int minitouch_swipe_extra_end_delay = 0; int swipe_with_pause_required_distance = 0; std::vector minitouch_programs_order; RequestInfo penguin_report; // 企鹅物流汇报: diff --git a/src/MaaCore/Controller/MinitouchController.cpp b/src/MaaCore/Controller/MinitouchController.cpp index 5244b9deee..e1dd3da803 100644 --- a/src/MaaCore/Controller/MinitouchController.cpp +++ b/src/MaaCore/Controller/MinitouchController.cpp @@ -191,12 +191,10 @@ bool asst::MinitouchController::swipe(const Point& p1, const Point& p2, int dura } }; - constexpr int DefaultDuration = 200; - minitouch_move(x1, y1, x2, y2, duration ? duration : DefaultDuration); + minitouch_move(x1, y1, x2, y2, duration ? duration : opt.minitouch_swipe_default_duration); if (extra_swipe && opt.minitouch_extra_swipe_duration > 0) { - constexpr int ExtraEndDelay = 100; // 停留终点 - m_minitoucher->wait(ExtraEndDelay); + m_minitoucher->wait(opt.minitouch_swipe_extra_end_delay); // 停留终点 minitouch_move(x2, y2, x2, y2 - opt.minitouch_extra_swipe_dist, opt.minitouch_extra_swipe_duration); } bool ret = m_minitoucher->up(); diff --git a/src/MaaCore/Controller/PlayToolsController.cpp b/src/MaaCore/Controller/PlayToolsController.cpp index d0185985db..850291d5dc 100644 --- a/src/MaaCore/Controller/PlayToolsController.cpp +++ b/src/MaaCore/Controller/PlayToolsController.cpp @@ -143,13 +143,12 @@ bool asst::PlayToolsController::swipe(const Point& p1, const Point& p2, int dura } }; - constexpr int DefaultDuration = 200; - progressive_move(x1, y1, x2, y2, duration ? duration : DefaultDuration); - const auto& opt = Config.get_options(); + + progressive_move(x1, y1, x2, y2, duration ? duration : opt.minitouch_swipe_default_duration); + if (extra_swipe && opt.minitouch_extra_swipe_duration > 0) { - constexpr int ExtraEndDelay = 100; // 停留终点 - toucher_wait(ExtraEndDelay); + toucher_wait(opt.minitouch_swipe_extra_end_delay); // 停留终点 progressive_move(x2, y2, x2, y2 - opt.minitouch_extra_swipe_dist, opt.minitouch_extra_swipe_duration); }