python控制游戏窗口,python编游戏脚本教学
在上一篇文章中,我们用Python开发了游戏运行脚本(1)成功调用沙漠插件。在上一篇文章中,我们简单的实现了调用沙漠插件,输出版本号的功能。接下来,我们需要通过沙漠插件模拟鼠标点击和键盘文本输入。由于近几年最流行的游戏基本都是手游,我们也会以手游为例来开发游戏脚本。大漠插件是一款针对Windows平台的鼠标键盘模拟+图文查找库,
这样,实现手机游戏脚本开发的第一步就是下载Android模拟器,然后模拟Android模拟器的鼠标和键盘,从而实现游戏脚本的自动化。
一、安卓模拟器的选择目前市面上有很多安卓模拟器,如夜神模拟器、闪电模拟器、腾讯手机助手、网易的蒋木木模拟器等这些模拟器在手机游戏的兼容性和沙漠外挂的支持上各有优劣。可以根据具体的手游来考虑。我这里选夜神模拟器,选其他的也没问题,因为原理是一样的。选择模拟器后,下载并安装它。安装成功后,打开夜神模拟器,就会看到夜神模拟器的主页面。这里我把夜神模拟器的分辨率修改为[640*360/dpi=240]
第二,使用Desert插件绑定特定的窗口。对于Windows系统来说,桌面上能看到的东西其实都是一个又一个Windows窗口,Android模拟器也不例外;根据Desert API的文档,我们模拟鼠标点击和键盘击键的第一步是调用Desert插件的API绑定特定的窗口。过程中使用了沙漠插件的一些API(具体API介绍请自行参考沙漠插件的API文档)。以下是我们的窗口绑定代码:
Import32com.client #创建沙漠实例对象defcreatedinstance():DM=win32 com . client . dispatch( DM . dmsoft )#调用沙漠插件,获取沙漠对象print(沙漠插件版本号: dm.ver()) #输出版本号返回dm#查找窗口,返回找到的窗口句柄def findWindow(dm,windowClass,windowTitle): windowHandle=dm。FindWindow(windowClass,window title)print( found window handle= str(window handle))# output window handle ID return window handle # bind window def bind window(DM,windowHandle): isBindSuccess=dm。BindWindow(windowHandle, normal , normal , normal ,0)print( successful binding= str(isBindSuccess))# successful binding if _ _ name _ _= _ _ main _ :DM=created instance()Handle=find window(DM,,夜神模拟器)isbindsuccessful=bind window(DM,windowHandle)
调用沙漠插件的API【FindWindow】找到夜神模拟器的窗口句柄,输出窗口句柄的编号,调用沙漠插件的API【Bind Window】绑定找到的窗口句柄,输出绑定结果。3.成功绑定窗口后,我们就可以对窗口为所欲为了,就是夜神模拟器!
这里调用沙漠插件的API[Move to(x,y)]将鼠标移动到一个特定的坐标点(整个坐标系以Android模拟器的左上角为基准,向下向右扩散),然后调用[LeftClick ()],就成功实现了模拟点击。
#点击窗口def click window (dm,x,y): dm.moveto (x,y)DM . left Click()if _ _ name _ _= _ _ main _ :DM=created instance()window handle=find window(DM,,夜神模拟器)isbindsuccess=bindwindow (DM,window handle)if isbindsuccess:Click window(DM,136,161)
可以看到,python运行的一瞬间,鼠标自行移动到x=136,y=161的位置,触发点击,打开应用,这样我们就初步实现了鼠标模拟点击的功能。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。