* 需要用到环境 Python3、 pycharm、天天模拟器、阴阳师。
* 准备库 pip install pyautogui pip install pywin32 12
* 需要用到的全部库 import tkinter as tk import pyautogui import time import random
import win32gui import win32con import threading from tkinter import * AP =
True Ma = 0 12345678910
* 模块
* 调整模拟器窗体大小位置 def chuangkou(): titlename = "靠谱天天模拟器 3.2.9" # 名字注意你的版本 # 获取句柄
hwnd = win32gui.FindWindow(0, titlename) # 获取窗口左上角和右下角坐标 left, top, right,
bottom = win32gui.GetWindowRect(hwnd) print("宽",right,"高", bottom) #
调整目标窗口到坐标(0,0),大小设置为(700,500) win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,
0, 0, 700, 500, win32con.SWP_SHOWWINDOW) 123456789
* 获取开始匹配按钮 def kaishi(): if
pyautogui.pixelMatchesColor(647,391,(241,213,141)) == True: # 判断像素点是否为输入像素 if
pyautogui.pixelMatchesColor(684,404,(105,71,35)) == True: # 判断像素点是否为输入像素 a =
random.randint(649, 678) # 随机x轴坐标区间 b = random.randint(391, 414) # 随机y轴坐标区间
pyautogui.moveTo(x=a, y=b, duration=0.25) # 鼠标移动到该随机区域时间为随机c秒
pyautogui.doubleClick() # 单击该区域 print("识别到按钮") time.sleep(2)
time.sleep(random.uniform(0.05, 0.10)) 1234567891011
* 获取结束画面 def jieshu(): if pyautogui.pixelMatchesColor(254,119,(153,28,18)) ==
True: # 判断像素点是否为输入像素 if pyautogui.pixelMatchesColor(503,100,(231,214,170)) ==
True: # 判断像素点是否为输入像素 print("识别到") time.sleep(random.uniform(0.05, 0.2)) #
随机延迟时间 a = random.randint(424, 676) # 随机x轴坐标区间 b = random.randint(286, 413) #
随机y轴坐标区间 for i in range(0, random.randint(7, 9)): # 随机点击次数7到9次 a = a +
random.randint(2, 8) # x轴随机位置偏移 a = a - random.randint(2, 8) b = b +
random.randint(2, 8) # y轴随机位置偏移 b = b - random.randint(2, 8)
pyautogui.moveTo(x=a, y=b, duration=0.15) # 随机移动鼠标到随机位置
time.sleep(random.uniform(0.05, 0.10)) # 随机延迟点击时间间隔 pyautogui.click() # 模拟鼠标点击
time.sleep(random.uniform(0.05, 0.10)) # 点击后延迟随机秒 time.sleep(1) # 执行完成后暂停一秒
1234567891011121314151617
* 因为用的死循环所以要搞个多线程 def thread_it(func, *args): # 创建 t =
threading.Thread(target=func, args=args) # 守护 !!! t.setDaemon(True) # 启动
t.start() 1234567
* GUI界面 用的tk def __init__(self, master, masterl): fm1 = Frame(master)
Label(topl, justify=tk.LEFT, image=photo, compound=tk.CENTER,
fg="white").pack(side=TOP, anchor=W, fill=BOTH) fm1.pack(side=TOP, fill=BOTH)
fm2 = Frame(masterl) Button(topl, text='开始激情御魂(队长版)', command=lambda:
thread_it(New), bg="pink").pack(side=LEFT, anchor=NW, fill=X) Button(topl,
text='开始激情御魂(打手版)', command=lambda: thread_it(News),
bg="DeepSkyBlue").pack(side=LEFT, anchor=N, fill=X, padx=12, ) Button(topl,
text='调整位置', command=lambda: thread_it(chuangkou), bg="red").pack(side=TOP,
anchor=NE, fill=X) fm2.pack(side=LEFT, fill=NONE, padx=10) fm3 = Frame(masterl)
Button(topl, text='停止', command=lambda: thread_it(tingzhi),
bg="yellow").pack(side=LEFT, anchor=W, fill=X) Button(topl, text='开始',
command=lambda: thread_it(dakai), bg="yellow").pack(side=LEFT, fill=X, padx=5)
fm3.pack(side=LEFT, fill=NONE, ipadx=10) 12345678910111213141516
* 主要的代码就在这里的还有一些小东西,扒的大佬的:以下是完整的代码 import tkinter as tk import pyautogui
import time import random import win32gui import win32con import threading from
tkinter import * AP = True Ma = 0 def kaishi(): if
pyautogui.pixelMatchesColor(647,391,(241,213,141)) == True: # 判断像素点是否为输入像素 if
pyautogui.pixelMatchesColor(684,404,(105,71,35)) == True: # 判断像素点是否为输入像素 a =
random.randint(649, 678) # 随机x轴坐标区间 b = random.randint(391, 414) # 随机y轴坐标区间
pyautogui.moveTo(x=a, y=b, duration=0.25) # 鼠标移动到该随机区域时间为随机c秒
pyautogui.doubleClick() # 单击该区域 print("识别到按钮") time.sleep(2)
time.sleep(random.uniform(0.05, 0.10)) def jieshu(): if
pyautogui.pixelMatchesColor(254,119,(153,28,18)) == True: # 判断像素点是否为输入像素 if
pyautogui.pixelMatchesColor(503,100,(231,214,170)) == True: # 判断像素点是否为输入像素
print("识别到") time.sleep(random.uniform(0.05, 0.2)) # 随机延迟时间 a =
random.randint(424, 676) # 随机x轴坐标区间 b = random.randint(286, 413) # 随机y轴坐标区间 for
i in range(0, random.randint(7, 9)): # 随机点击次数7到9次 a = a + random.randint(2, 8)
# x轴随机位置偏移 a = a - random.randint(2, 8) b = b + random.randint(2, 8) # y轴随机位置偏移
b = b - random.randint(2, 8) pyautogui.moveTo(x=a, y=b, duration=0.15) #
随机移动鼠标到随机位置 time.sleep(random.uniform(0.05, 0.10)) # 随机延迟点击时间间隔
pyautogui.click() # 模拟鼠标点击 time.sleep(random.uniform(0.05, 0.10)) # 点击后延迟随机秒
time.sleep(1) # 执行完成后暂停一秒 def chuangkou(): titlename = "靠谱天天模拟器 3.2.9" # 获取句柄
hwnd = win32gui.FindWindow(0, titlename) # 获取窗口左上角和右下角坐标 left, top, right,
bottom = win32gui.GetWindowRect(hwnd) print("宽",right,"高", bottom) #
调整目标窗口到坐标(0,0),大小设置为(700,500) win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,
0, 0, 700, 500, win32con.SWP_SHOWWINDOW) def New(): # 御魂司机的方法 while (AP):
#AP是一个全局变量用来暂停代码的 print("御魂司机正在执行") kaishi() print("等待结束") time.sleep(1)
jieshu() def News(): # 御魂打手的方法 while (AP): print("御魂打手正在执行") jieshu()
time.sleep(1) def tingzhi(): #停止按钮修改AP变量为False 停止循环 global AP AP = False
print(AP) def dakai(): #修改变量AP为true 解锁循环 global AP AP = True print(AP) def
thread_it(func, *args): # 创建 t = threading.Thread(target=func, args=args) # 守护
!!! t.setDaemon(True) # 启动 t.start() # 阻塞--卡死界面! # t.join() def __init__(self,
master, masterl): #研究了好久的布局写的超级乱 fm1 = Frame(master) Label(topl,
justify=tk.LEFT, image=photo, compound=tk.CENTER, fg="white").pack(side=TOP,
anchor=W, fill=BOTH) fm1.pack(side=TOP, fill=BOTH) fm2 = Frame(masterl)
Button(topl, text='开始激情御魂(队长版)', command=lambda: thread_it(New),
bg="pink").pack(side=LEFT, anchor=NW, fill=X) Button(topl, text='开始激情御魂(打手版)',
command=lambda: thread_it(News), bg="DeepSkyBlue").pack(side=LEFT, anchor=N,
fill=X, padx=12, ) Button(topl, text='调整位置', command=lambda:
thread_it(chuangkou), bg="red").pack(side=TOP, anchor=NE, fill=X)
fm2.pack(side=LEFT, fill=NONE, padx=10) fm3 = Frame(masterl) Button(topl,
text='停止', command=lambda: thread_it(tingzhi), bg="yellow").pack(side=LEFT,
anchor=W, fill=X) Button(topl, text='开始', command=lambda: thread_it(dakai),
bg="yellow").pack(side=LEFT, fill=X, padx=5) fm3.pack(side=LEFT, fill=NONE,
ipadx=10) topl = tk.Tk() # 创建top容器 photo =
tk.PhotoImage(file="C:\\Users\\longqiang\\Desktop\\python\\实验\\yysimg.png")
#图片可以自己找喜欢的呕大小为400*200像素 注意图片名称 topl.geometry("420x280+851+484") # 设置界面大小
和界面初始位置,默认的会和模拟器重合 topl.title("我爱你阴阳师") # 导入图片 __init__(topl, master=topl,
masterl=topl) #调用界面 topl.resizable(0, 0) #不允许用户改变窗口大小 topl.mainloop() #持续运行窗口
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
* 图片的路径位置记得改
效果图

* 害萌新python玩家,关于脚本的用到是像素匹配的,天天模拟器的设置不同可能识别不到像素,模拟器设置如下
* 使用流程,进入游戏组队界面直接点开始激情御魂,由于太菜停止按钮的分开的, 后期还能加入其他功能
源码获取加群哦:1136192749

 

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信