使用Python開發(fā)游戲運(yùn)行腳本實(shí)現(xiàn)模擬點(diǎn)擊
本文接上一篇文章 使用Python開發(fā)游戲運(yùn)行腳本(一)成功調(diào)用大漠插件
上一篇我們已經(jīng)簡(jiǎn)單實(shí)現(xiàn)了python調(diào)用大漠插件并輸出版本號(hào)的功能,接下來我們要做的就是通過大漠插件模擬鼠標(biāo)點(diǎn)擊和鍵盤文字輸入。 由于近年來最熱門的游戲基本都是手游,所以我們也會(huì)以手游為例來進(jìn)行游戲腳本的開發(fā)。大漠插件是一款針對(duì)Windows平臺(tái)的鼠標(biāo)鍵盤模擬+圖文查找?guī)欤?br /> 這樣我們要想實(shí)現(xiàn)手游腳本開發(fā)的第一步,就是下載Android模擬器,然后在對(duì)安卓模擬器進(jìn)行鼠標(biāo)和鍵盤的模擬,以此來實(shí)現(xiàn)自動(dòng)化游戲腳本。
一、Android模擬器的選擇
- 目前市面上有很多Android模擬器,比如夜神模擬器、雷電模擬器、騰訊手游助手、以及網(wǎng)易的木木模擬器等,這些模擬器在對(duì)手游兼容性和大漠插件的支持方面各有各的優(yōu)缺點(diǎn),大家可以根據(jù)具體的手游自行斟酌。
- 這里我選擇的是夜神模擬器,選擇其他的當(dāng)然也沒問題,因?yàn)樵硎窍嗤摹T谶x擇好模擬器之后下載安裝,安裝成功之后打開夜神模擬器,會(huì)看到夜神模擬器的主頁面,這里我已經(jīng)修改了夜神模擬器的分辨率為【640*360 / dpi = 240】
二、使用大漠插件對(duì)具體的窗口進(jìn)行綁定
對(duì)于Windows系統(tǒng)來說,在桌面上能看到的所有內(nèi)容,其實(shí)都是一個(gè)又一個(gè)的Windows窗口,Android模擬器也不例外;按照大漠API的說明文檔,我們要實(shí)現(xiàn)模擬鼠標(biāo)點(diǎn)擊和鍵盤按鍵的第一步,就是調(diào)用大漠插件的API對(duì)具體的窗口進(jìn)行綁定,過程中有用到一些大漠插件的API(具體API介紹請(qǐng)自行查閱大漠插件的API文檔),以下是我們進(jìn)行窗口綁定的代碼:
import win32com.client # 創(chuàng)建大漠實(shí)例對(duì)象 def createDMInstance(): dm = win32com.client.Dispatch('dm.dmsoft') # 調(diào)用大漠插件,獲取大漠對(duì)象 print("大漠插件版本號(hào):" + dm.ver()) # 輸出版本號(hào) return dm # 查找窗口,返回找到的窗口句柄 def findWindow(dm, windowClass, windowTitle): windowHandle = dm.FindWindow(windowClass, windowTitle) print("找到的窗口句柄 = " + str(windowHandle)) # 輸出窗口句柄ID return windowHandle # 綁定窗口 def bindWindow(dm, windowHandle): isBindSuccess = dm.BindWindow(windowHandle, "normal", "normal", "normal", 0) print("是否綁定成功 = " + str(isBindSuccess)) # 是否綁定成功 return isBindSuccess # 是否綁定成功 if __name__ == '__main__': dm = createDMInstance() windowHandle = findWindow(dm, "", "夜神模擬器") isBindSuccess = bindWindow(dm, windowHandle)
- 調(diào)用大漠插件的API【FindWindow】找到夜神模擬器的窗口句柄,輸出窗口句柄的編號(hào)
- 調(diào)用大漠插件的API【BindWindow】對(duì)找到的窗口句柄進(jìn)行綁定,并輸出綁定結(jié)果
三、進(jìn)行鼠標(biāo)模擬
在成功綁定窗口之后,我們就可以對(duì)窗口,也就是夜神模擬器為所欲為了!
這里調(diào)用大漠插件的API【MoveTo(x, y)】把鼠標(biāo)移動(dòng)到具體的坐標(biāo)點(diǎn)(整個(gè)坐標(biāo)系是以安卓模擬器左上角為原點(diǎn),向下向右展開),然后再調(diào)用【LeftClick()】,這樣就成功實(shí)現(xiàn)了模擬點(diǎn)擊。
可以看到在python運(yùn)行起來的一瞬間,鼠標(biāo)自行移動(dòng)到了x=136,y=161的位置,并觸發(fā)點(diǎn)擊,打開了應(yīng)用,這樣我們就初步實(shí)現(xiàn)了鼠標(biāo)模擬點(diǎn)擊的功能。
到此這篇關(guān)于使用Python開發(fā)游戲運(yùn)行腳本實(shí)現(xiàn)模擬點(diǎn)擊的文章就介紹到這了,更多相關(guān)Python模擬點(diǎn)擊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中關(guān)于字符串對(duì)象的一些基礎(chǔ)知識(shí)
這篇文章主要介紹了詳解Python中的字符串對(duì)象,關(guān)于字符串的操作和特性是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-04-04Python Traceback異常代碼排錯(cuò)利器使用指南
這篇文章主要為大家介紹了Python Traceback異常代碼排錯(cuò)利器使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python基于concurrent模塊實(shí)現(xiàn)多線程
這篇文章主要介紹了python基于concurrent模塊實(shí)現(xiàn)多線程,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04詳解python requests中的post請(qǐng)求的參數(shù)問題
這篇文章主要介紹了詳解python requests中的post請(qǐng)求的參數(shù)問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python數(shù)據(jù)結(jié)構(gòu)之遞歸方法講解
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之遞歸講解,遞歸是解決問題的一種方法,它將問題不斷地分成更小的子問題,直到子問題可以用普通的方法解決。通常情況下,遞歸會(huì)使用一個(gè)不停調(diào)用自己的函數(shù),下面來看看文章對(duì)此的詳細(xì)介紹吧2021-12-12pyttsx3實(shí)現(xiàn)中文文字轉(zhuǎn)語音的方法
今天小編就為大家分享一篇pyttsx3實(shí)現(xiàn)中文文字轉(zhuǎn)語音的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12