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); }