怎麼用python寫簡單的遊戲指令碼?
想必大家都喜歡玩遊戲吧,現在遊戲市場是非常火爆和可觀的,不少程式設計師都紛紛湧入遊戲公司,我們學習python其實也可以作為寫遊戲指令碼的,不清楚的小夥伴可以來看下了哦~
以楚留香的電腦版為例,記錄指令碼的編寫之路吧。
因為主要遊戲都在windows跑,沒什麼好說的,第一步應該是獲取視窗控制程式碼。
在按鍵精靈幫助下,我們知道了遊戲視窗控制程式碼的類名和名字分別為"Messiah_Game",“楚留香”。
利用win32gui的函式,獲取到視窗控制程式碼,並稍微調整一下我們理想的大小。
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)
這樣就完成對視窗的啟用和尺寸,位置設定了。
接下來我們先做一個模組的功能,比如自動擺攤購買,因為端遊模式和手遊模式擺攤位置不同,我們首先確定為端遊模式的座標。
自動購買第一步,首先是滑鼠能移動到‘’藏寶閣‘’圖示上
然後我們關注我們需要搶購的東西,再拿他與我們需求的價格做對比,如果小於我們理想的價格,則讓指令碼自動購買。
所以模擬鍵盤滑鼠的操作和價格識別就顯得尤為重要。以下為關注介面,每點選一次關注就會重新整理,似乎有點選事件間隔限制。
'''我們希望指令碼是在端遊模式跑起來的,方便測試,先預設一個Mode為端遊模式,後期可以設定一個檢查模式功能''' Mode='端遊模式' if(Mode=='端遊模式'): win32api.SetCursorPos([557, 584]) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
啟動指令碼後,發現滑鼠雖然移動成功,但是單擊命令似乎只能在遊戲之外的視窗才會執行?
為什麼呢?
這是由於遊戲遮蔽了系統API提供的模擬輸入,包括鍵盤滑鼠的模擬操作都不會生效。
看起來事情並不簡單。
那怎麼辦?如果你學習也迷茫。可以去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,裡面有最新Python教程專案
別急,我們可以模擬鍵盤滑鼠驅動的硬體操作。
以下理一下我們思路
目的:我們希望模擬鍵盤和滑鼠的操作。
可以使用方式或庫:
l pyinput
l autopy
l win32api
l winio
l vb類似於按鍵精靈的模式
l 前面三種已經證明不可行,因為都是api層面的操作,一定都會被遊戲系統遮蔽。關於第四種可以實現IO驅動的模擬介紹winio但是進入github檢視說明文件發現:也就是說,winio的python介面還不支援win10,其他語言倒是可以支援,但是我們的程式碼不就前功盡棄了嗎?因此聯想到可以使用vb的按鍵精靈模式來實現模擬輸入。在這裡我們並不是要推翻整個程式碼重寫,更不是把語言換成vbscript,我們可以透過呼叫按鍵精靈某些外掛實現模擬的鍵盤滑鼠輸入。今天就分析到這裡,下一篇我們來講講怎麼使用python呼叫vb指令碼實現鍵盤滑鼠的dx遊戲模擬輸入吧。
如果還想知道更多的python知識,可以到進行查詢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/506/viewspace-2832369/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python手機版做小遊戲程式碼大全-python簡單小遊戲程式碼 怎麼用Python製作簡單小遊戲...Python遊戲
- python指令碼開頭怎麼寫Python指令碼
- python寫的簡單分組統計指令碼Python指令碼
- python編寫的簡單的mysql巡檢指令碼PythonMySql指令碼
- Python Plumbum 簡介:用 Python 來寫指令碼Python指令碼
- 無聊寫的簡單用PLSQL分割字串的指令碼SQL字串指令碼
- python簡介怎麼寫-python爬蟲簡歷怎麼寫Python爬蟲
- 【python】簡單的備份指令碼Python指令碼
- 【python】簡單的備份指令碼2Python指令碼
- 怎麼停止python指令碼Python指令碼
- 利用 Powershell 編寫簡單的瀏覽器指令碼瀏覽器指令碼
- shell指令碼的一則簡單運用案例指令碼
- 用Python寫一個簡單的Web框架PythonWeb框架
- 用Python做遊戲有多簡單?Python遊戲
- 手把手教你編寫最簡單的效能指令碼指令碼
- 編寫簡單的windows bat批處理指令碼檔案WindowsBAT指令碼
- 用 Python 做個簡單的井字遊戲Python遊戲
- 用Python寫一個簡單的微博爬蟲Python爬蟲
- 一個非常簡單易懂的WIFI密碼爆破python指令碼WiFi密碼Python指令碼
- 基於python編寫一個簡單的多執行緒埠掃描指令碼Python執行緒指令碼
- 為什麼寫爬蟲用Python語言?原因很簡單!爬蟲Python
- 用 Python 寫指令碼傳送工作週報Python指令碼
- 你所寫過的最好的Python指令碼是什麼?Python指令碼
- mysql簡單的碎片清理指令碼MySql指令碼
- 簡單的FTP Donwload 指令碼FTP指令碼
- 【SQL】【遷移】寫了一個簡單的sequence遷移指令碼SQL指令碼
- 用Python寫一個簡單的中文分詞器Python中文分詞
- python讀寫excel檔案簡單應用PythonExcel
- 你用過不寫程式碼就能完成一個簡單模組的元件麼?元件
- [20150821]簡單編寫解除阻塞的指令碼.txt指令碼
- 簡單的 Shell 指令碼入門教程指令碼
- redis中lua指令碼的簡單使用Redis指令碼
- Python單例的一種簡單寫法Python單例
- 用express寫個簡單的CRUDExpress
- MySQL密碼加密認證的簡單指令碼MySql密碼加密指令碼
- 最簡單的一個powershell的指令碼指令碼
- 一步步教你怎麼用python寫貪吃蛇遊戲Python遊戲
- 用python寫一個自動化盲註指令碼Python指令碼