• 需要用到环境 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
  • 模块
  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)
123456789
  1. 获取开始匹配按钮
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
  1. 获取结束画面
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
  1. 因为用的死循环所以要搞个多线程
def thread_it(func, *args):# 创建t = threading.Thread(target=func, args=args)# 守护 !!!t.setDaemon(True)# 启动t.start()
1234567
  1. 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
  1. 主要的代码就在这里的还有一些小东西,扒的大佬的:以下是完整的代码
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 APAP = Falseprint(AP)
def dakai():   #修改变量AP为true 解锁循环global APAP = Trueprint(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

Python写阴阳师脚本带GUI又是一个学习小技巧!相关推荐

  1. Python写阴阳师脚本带GUI又是一个学习小技巧

    Python写阴阳师脚本带GUI 需要用到环境 Python3. pycharm.天天模拟器.阴阳师. 准备库 pip install pyautogui pip install pywin32 需要 ...

  2. 刑!太刑了!今天又是一个入狱小技巧

    日志 说到入狱,你首先可能会想到小偷流氓,罪犯歹徒,而在大家的认知中程序员们除了脱发.过劳死以及孤独一生以外,似乎和入狱也沾不上边.但在这里先别着急下判断,因为程序员有其实千百种被抓去蹲大牢的可能性, ...

  3. 【基于Web攻击】的方式发现并攻击物联网设备,又是一个入狱小技巧

    近二十年来,DNS重绑定(DNS rebinding)攻击一直是讨论的话题.尽管浏览器厂商做出了努力,但仍然无法找到一个能稳定抵御这些攻击的防御系统.据说这类问题八年前就已经被修复了.但是这类攻击通过 ...

  4. 用python写自动化测试脚本常用功能:结果记录,运行日志,测试配置,带颜色打印在控制台

    用python写自动化测试脚本常用功能:结果记录,运行日志,测试配置,带颜色打印在控制台 利用csv库来记录测试结果 利用logging库来记录脚本运行信息 利用ConfigParser库来读取测试配 ...

  5. python写自动化测试脚本常见报错_Appium自动化测试

    3.     Appium安装配置 3.1.  限制 如果你在windows上安装appium,你没法使用预编译专用于OS X的.app文件,你也将不能测试IOS apps,因为appium依赖OS ...

  6. python实现的、带GUI界面电影票房数据可视化程序

    代码地址如下: http://www.demodashi.com/demo/14588.html ##详细说明: Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从 ...

  7. 程序员的反击!每天一个离职小技巧

    作者 | 梦想橡皮擦 来源 | 非本科程序员(ID:htmlhttp) 写在前面 俗话说的好,代码写的少,离职少不了. 最近畅游互联网,发现一些离职小技巧,读后,内心被深深的打动了,但是细细的品过之后 ...

  8. python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

  9. python输出数据到excel-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

最新文章

  1. 20 个 jQuery 超酷视觉效果构建教程推荐
  2. sublime3 ctl+b无效
  3. java 图片合成pdf_Java将图片组合成PDF文件的方法
  4. MAC中生成SSH key
  5. uchome登陆机制分析(一)
  6. 记录:英文参考文献格式
  7. 内存占用率过高怎么办 一分钟解决
  8. Parquet 格式文件
  9. 减法器(差分放大器)
  10. 年终盘点,蔚来终于失去互联网造车老大地位,被小鹏取而代之
  11. WebRTC中的信令和内网穿透技术 STUN / TURN
  12. VBS脚本病毒总结与分析
  13. iOS 快速接入腾讯虚拟人特效 Avatar
  14. 使用反编译工具反编译Dll,编译成C#
  15. 数字三角形(递归/递推)C/C++
  16. 新零售三大优势?精准定位用户需求
  17. Xiyou linux 2017 面试题基本知识点
  18. 两岸猿声啼不住,轻舟已过万重山(再见 MySQL 索引~)
  19. grafana 目录遍历(CVE-2021-43798)漏洞复现
  20. 电磁场与电磁波实验四 熟悉CST Studio软件在电磁领域的应用

热门文章

  1. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 K-Dimensional Foil II(二分瞎搞)
  2. 织梦去除版权中的Power by DedeCms
  3. 微信卡券会员卡跳转外链php,微信卡券,在卡包中跳转到小程序的字段怎么填写...
  4. URL:统一资源定位符
  5. 微养日记董事长唐新萍女士特邀出席2022年第16届中国品牌节播
  6. 机械转行前端,我的过去和期待
  7. 一加消息推送服务器,一加手机加入统一推送联盟并首批完成服务开发
  8. 数据建模(Data Modeling)是什么?
  9. U盘装centos日记(使用大白菜最新版20150927)
  10. 布隆过滤器在hbase的应用