使用Python开发游戏运行脚本实现模拟点击

时间:2022-07-02 11:19:30

本文接上一篇文章 使用Python开发游戏运行脚本(一)成功调用大漠插件

上一篇我们已经简单实现了python调用大漠插件并输出版本号的功能,接下来我们要做的就是通过大漠插件模拟鼠标点击和键盘文字输入。 由于近年来最热门的游戏基本都是手游,所以我们也会以手游为例来进行游戏脚本的开发。大漠插件是一款针对Windows平台的鼠标键盘模拟+图文查找库,
这样我们要想实现手游脚本开发的第一步,就是下载Android模拟器,然后在对安卓模拟器进行鼠标和键盘的模拟,以此来实现自动化游戏脚本。

一、Android模拟器的选择

  • 目前市面上有很多Android模拟器,比如夜神模拟器、雷电模拟器、腾讯手游助手、以及网易的木木模拟器等,这些模拟器在对手游兼容性和大漠插件的支持方面各有各的优缺点,大家可以根据具体的手游自行斟酌。
  • 这里我选择的是夜神模拟器,选择其他的当然也没问题,因为原理是相同的。在选择好模拟器之后下载安装,安装成功之后打开夜神模拟器,会看到夜神模拟器的主页面,这里我已经修改了夜神模拟器的分辨率为【640*360 / dpi = 240】

使用Python开发游戏运行脚本实现模拟点击

二、使用大漠插件对具体的窗口进行绑定

对于Windows系统来说,在桌面上能看到的所有内容,其实都是一个又一个的Windows窗口,Android模拟器也不例外;按照大漠API的说明文档,我们要实现模拟鼠标点击和键盘按键的第一步,就是调用大漠插件的API对具体的窗口进行绑定,过程中有用到一些大漠插件的API(具体API介绍请自行查阅大漠插件的API文档),以下是我们进行窗口绑定的代码:

  1. import win32com.client
  2.  
  3. # 创建大漠实例对象
  4. def createDMInstance():
  5. dm = win32com.client.Dispatch('dm.dmsoft') # 调用大漠插件,获取大漠对象
  6. print("大漠插件版本号:" + dm.ver()) # 输出版本号
  7. return dm
  8.  
  9. # 查找窗口,返回找到的窗口句柄
  10. def findWindow(dm, windowClass, windowTitle):
  11. windowHandle = dm.FindWindow(windowClass, windowTitle)
  12. print("找到的窗口句柄 = " + str(windowHandle)) # 输出窗口句柄ID
  13. return windowHandle
  14.  
  15. # 绑定窗口
  16. def bindWindow(dm, windowHandle):
  17. isBindSuccess = dm.BindWindow(windowHandle, "normal", "normal", "normal", 0)
  18. print("是否绑定成功 = " + str(isBindSuccess)) # 是否绑定成功
  19. return isBindSuccess # 是否绑定成功
  20.  
  21. if __name__ == '__main__':
  22. dm = createDMInstance()
  23. windowHandle = findWindow(dm, "", "夜神模拟器")
  24. isBindSuccess = bindWindow(dm, windowHandle)

使用Python开发游戏运行脚本实现模拟点击

  • 调用大漠插件的API【FindWindow】找到夜神模拟器的窗口句柄,输出窗口句柄的编号
  • 调用大漠插件的API【BindWindow】对找到的窗口句柄进行绑定,并输出绑定结果

三、进行鼠标模拟

在成功绑定窗口之后,我们就可以对窗口,也就是夜神模拟器为所欲为了! 这里调用大漠插件的API【MoveTo(x, y)】把鼠标移动到具体的坐标点(整个坐标系是以安卓模拟器左上角为原点,向下向右展开),然后再调用【LeftClick()】,这样就成功实现了模拟点击。

使用Python开发游戏运行脚本实现模拟点击使用Python开发游戏运行脚本实现模拟点击

可以看到在python运行起来的一瞬间,鼠标自行移动到了x=136,y=161的位置,并触发点击,打开了应用,这样我们就初步实现了鼠标模拟点击的功能。

到此这篇关于使用Python开发游戏运行脚本实现模拟点击的文章就介绍到这了,更多相关Python模拟点击内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/abc6368765/article/details/121335955