使用前安装依赖:
pip install pyautogui pynput
脚本使用方法与运行逻辑
- 创建一单人房间,记录光标在界面上方菜单栏的“Flip”坐标和点击Flip后的确认弹窗的“Yes”坐标(可以用Snipaste截图软件辅助)。
- 修改脚本中的TOP_CLICK为“Flip”坐标,MID_CLICK为“Yes”坐标。
- 修改脚本中的REPEAT_COUNT为你需要翻转桌子的次数。
- 运行脚本,3秒后开始操作,切换到桌游模拟器的窗口。
- (光标在TOP_CLICK单击左键(持续0.1s),在0.3s后移动到MID_CLICK单击左键(持续0.1s),在3s后光标回到TOP_CLICK),此流程运行REPEAT_COUNT次。
- 按空格键可停止脚本运行。
![image]()
![image]()
代码
import time
import threading
from pynput import keyboard
import pyautogui
# 禁用 pyautogui 的安全特性(移动到边角不会触发失败)
pyautogui.FAILSAFE = False
# 配置坐标
TOP_CLICK = (1159, 41)
MID_CLICK = (882, 573)
# 重复次数
REPEAT_COUNT = 880
# 是否停止的标志
stop_flag = threading.Event()
def on_press(key):
if key == keyboard.Key.space:
print("\n检测到空格键,正在停止...")
stop_flag.set()
return False # 停止监听
def main():
print("=== 自动点击脚本 ===")
print(f"屏幕分辨率: 1920x1080")
print(f"点击位置: {TOP_CLICK} -> {MID_CLICK}")
print(f"重复次数: {REPEAT_COUNT}")
print("按空格键可随时停止。")
print("\n3 秒后开始,请切换到目标窗口...")
time.sleep(3)
listener = keyboard.Listener(on_press=on_press)
listener.start()
for i in range(REPEAT_COUNT):
if stop_flag.is_set():
break
print(f"第 {i + 1}/{REPEAT_COUNT} 次循环...")
# 移动到右上角按钮并点击
pyautogui.moveTo(*TOP_CLICK, duration=0.1)
pyautogui.click(button='left')
if stop_flag.is_set():
break
time.sleep(0.3)
# 移动到中间位置并点击
pyautogui.moveTo(*MID_CLICK, duration=0.1)
pyautogui.click(button='left')
if stop_flag.is_set():
break
# 等待 3 秒,但每 0.1 秒检查一次停止标志
waited = 0.0
while waited < 3.0 and not stop_flag.is_set():
time.sleep(0.1)
waited += 0.1
listener.stop()
print("脚本已结束。")
if __name__ == "__main__":
main()