使用python寫游戲腳本的方法

這篇文章給大家分享的是有關(guān)使用python寫游戲腳本的方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、肅北網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

想必大家都喜歡玩游戲吧,現(xiàn)在游戲市場(chǎng)是非?;鸨涂捎^的,不少程序員都紛紛涌入游戲公司,我們學(xué)習(xí)python其實(shí)也可以作為寫游戲腳本的,不清楚的小伙伴可以來看下了哦~

以楚留香的電腦版為例,記錄腳本的編寫之路吧。

因?yàn)橹饕螒蚨荚趙indows跑,沒什么好說的,第一步應(yīng)該是獲取窗口句柄。

在按鍵精靈幫助下,我們知道了游戲窗口句柄的類名和名字分別為"Messiah_Game",“楚留香”。

利用win32gui的函數(shù),獲取到窗口句柄,并稍微調(diào)整一下我們理想的大小。

import win32con
import win32gui
import win32api
 
hwnd=win32gui.FindWindowEx(0,0,"Messiah_Game","楚留香")
win32gui.SetForegroundWindow (hwnd)
 
if(win32gui.IsIconic(hwnd)):
 win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 300,200,1200,800,win32con.SWP_SHOWWINDOW)

這樣就完成對(duì)窗口的激活和尺寸,位置設(shè)定了。

接下來我們先做一個(gè)模塊的功能,比如自動(dòng)擺攤購(gòu)買,因?yàn)槎擞文J胶褪钟文J綌[攤位置不同,我們首先確定為端游模式的坐標(biāo)。

自動(dòng)購(gòu)買第一步,首先是鼠標(biāo)能移動(dòng)到‘’藏寶閣‘’圖標(biāo)上

然后我們關(guān)注我們需要搶購(gòu)的東西,再拿他與我們需求的價(jià)格做對(duì)比,如果小于我們理想的價(jià)格,則讓腳本自動(dòng)購(gòu)買。

所以模擬鍵盤鼠標(biāo)的操作和價(jià)格識(shí)別就顯得尤為重要。以下為關(guān)注界面,每點(diǎn)擊一次關(guān)注就會(huì)刷新,似乎有點(diǎn)擊事件間隔限制。

使用python寫游戲腳本的方法

'''我們希望腳本是在端游模式跑起來的,方便測(cè)試,先默認(rèn)一個(gè)Mode為端游模式,后期可以設(shè)置一個(gè)檢查模式功能'''
 Mode='端游模式'
 if(Mode=='端游模式'):
 win32api.SetCursorPos([557, 584])
 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

啟動(dòng)腳本后,發(fā)現(xiàn)鼠標(biāo)雖然移動(dòng)成功,但是單擊命令似乎只能在游戲之外的窗口才會(huì)執(zhí)行?

為什么呢?

這是由于游戲屏蔽了系統(tǒng)API提供的模擬輸入,包括鍵盤鼠標(biāo)的模擬操作都不會(huì)生效。

看起來事情并不簡(jiǎn)單。

那怎么辦?如果你學(xué)習(xí)也迷茫??梢匀バ【幍腜ython交流.裙 :一久武其而而流一思(數(shù)字的諧音)轉(zhuǎn)換下可以找到了,里面有最新Python教程項(xiàng)目

別急,我們可以模擬鍵盤鼠標(biāo)驅(qū)動(dòng)的硬件操作。

以下理一下我們思路

目的:我們希望模擬鍵盤和鼠標(biāo)的操作。

可以使用方式或庫(kù):

l pyinput

l autopy

l win32api

l winio

l vb類似于按鍵精靈的模式

l 前面三種已經(jīng)證明不可行,因?yàn)槎际莂pi層面的操作,一定都會(huì)被游戲系統(tǒng)屏蔽。關(guān)于第四種可以實(shí)現(xiàn)IO驅(qū)動(dòng)的模擬介紹winio但是進(jìn)入github查看說明文檔發(fā)現(xiàn):也就是說,winio的python接口還不支持win10,其他語言倒是可以支持,但是我們的代碼不就前功盡棄了嗎?因此聯(lián)想到可以使用vb的按鍵精靈模式來實(shí)現(xiàn)模擬輸入。在這里我們并不是要推翻整個(gè)代碼重寫,更不是把語言換成vbscript,我們可以通過調(diào)用按鍵精靈某些插件實(shí)現(xiàn)模擬的鍵盤鼠標(biāo)輸入。今天就分析到這里,下一篇我們來講講怎么使用python調(diào)用vb腳本實(shí)現(xiàn)鍵盤鼠標(biāo)的dx游戲模擬輸入吧。

感謝各位的閱讀!關(guān)于使用python寫游戲腳本的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

本文標(biāo)題:使用python寫游戲腳本的方法
鏈接URL:http://muchs.cn/article12/pipegc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、小程序開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司