一. 緣起
因爲最近疫情的原因,待在家裏實在無聊就又玩起了wow懷舊服,wow是一款非常經典的遊戲,裏面有一個專業技能叫做釣魚。因爲釣魚本身比較枯燥,且重複度很高,所以作爲一名資深程序員,我決定用代碼的方式來解決這個問題。
二. 歷程
最開始的時候,在b站上找了一個wow釣魚的介紹視頻,看了一下大概思路,但是沒什麼用,裏面用的是按鍵精靈且系統爲windows.
https://www.bilibili.com/video/av90618144?t=426
於是我決定用python實現,因爲我比較熟悉python和javascript,而明顯這種需求python會更合適,google找代碼,最後參考了github上的python2實現的方法
https://github.com/kioltk/wow-fishipy
進行改造成python3
三. 困難
- 覺得大多數的代碼都是在windows上的實現的,mac上比較少,但是找到以上跨平臺的這段代碼就比較容易了。
- 安裝環境也有一點麻煩,安裝pyaudio的時候需要先brew 安裝一個環境
- 之前用autopy進行的一部分交互,改成了用pyUserInterface
- 匹配釣魚座標的時候,遇到了問題,cv2.matchTemplate參數進行了改造和調試,這部分還需要優化
- 當地點和釣魚時間切換的石斛,可以用以下代碼進行調試
# 在原圖上畫矩形
cv2.rectangle(img_rgb, top_left, bottom_right, (0, 0, 255), 2)
# 顯示原圖和處理後的圖像,
cv2.imshow("template", template)
cv2.imshow("processed", img_rgb)
cv2.waitKey()
四. 總結
目前,需要換地點的時候,包括白天黑夜環境的切換會影響找到魚漂的座標的問題,需要進行截圖替換,重新調試,但是總體可以實現,以下是我的代碼。
https://github.com/codingories/mywowfishing