<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          玩游戲你還在自己動手玩?

          共 4932字,需瀏覽 10分鐘

           ·

          2021-01-25 16:40

          前陣子,媳婦迷上了動物餐廳這款小游戲。卡哇伊萌萌的畫風,簡單無腦的操作,看廣告就可以變強的設定,能整理出excel滿滿一sheet的攻略,無限制打發(fā)無聊的時間,讓雙手再也停不下來。這些近乎完美的優(yōu)點,完美地契合著甲方爸爸的需求。先讓大家看看畫風是怎樣的。(此處真不是安利這款小游戲,當然要是愿意給我打廣告費我也不介意)

          2d65d716ec18bcad051c3311a14bd587.webp

          這個游戲的核心很簡單,就是要你不停的在線接客人,賺小魚干,買道具,然后就可以繼續(xù)賺更多的小魚干,再買更高級的道具。越到后面,東西貴的離譜。從我一個碼農的角度來說,道具價值多少小魚干,完全是碼農在后臺改一個數字的事。之所以階梯價把目標定的越來越高,就是為了pua玩家,這大概是現在所有游戲的套路吧。一直在玩,就會沉浸進去,局外人感覺很無聊,你自己要是有幾天不玩也就會覺得沒啥意思了。

          為了搞清楚這個游戲怎么玩的,我也成功入坑,成為不折不扣的小魚干打工奴。看上面的圖,可以看到有一個手機宣傳的按鈕。這個按鈕你只要一直點著,不管是單擊還是長按,恭喜你,幸福的源泉開始了。會有源源不斷的客人來你餐廳吃飯消費,給你小魚干,說白點,就是刷錢。這么蠢的動作,居然需要耗費一個人來不停操作,太奢侈了。碼農二話不說,不能忍,我得寫個外掛解放沉迷賺小魚干的媳婦。

          廢話不多說,直奔今天的主題。游戲在微信小程序里面,運行在手機端。python+adb控制方案再合適不過了。從網上下載好adb,配好環(huán)境變量,在cmd窗口輸入adb version 查看版本號,建議安裝最新版的adb,舊版本的會有一些問題。如果能夠正確的看到版本號,就是安裝好了。

          連接手機。手機打開開發(fā)者選項,開啟usb調試。命令行輸入adb devices,如果可以看到設備節(jié)點,就是連接成功了。接下來就可以輸入adb命令來控制手機了。

          先小試牛刀,點擊事件:

          adb shell input tap 960 2100
          可以看到屏幕上坐標是(960,2100)的區(qū)域點擊了一下。(開發(fā)者模式選項卡中,開啟顯示點擊事件和指針坐標顯示)長按事件:
          adb?shell?input?swipe??960?2100?960?2100?10000
          在屏幕上(960,2100)的位置長按10s

          2846200a6affd7171eb7de3becf5d6fe.webp

          接下來的任務就是優(yōu)化了,根據屏幕分辨率識別不同的手機,按比例點擊相應的坐標,再在腳本里實現完整的自動控制。

          實現長按手機宣傳還不夠,仙女還有更高的要求。要能夠自動收花。怎么個收花法?就是下面視頻這樣。

          收花的位置是固定的,可以使用坐標來解決。播種的位置和收花的位置接近,固定坐標也可以解決。確認播種的操作用坐標也行,但如果花還沒成熟,點擊那個坐標就會進入許愿池看廣告,很可能就點出游戲了,所以這里圖像識別安排上了。詳細代碼如下:

          import osimport sysfrom time import sleepimport reimport cv2 as cvimport numpy as npfrom datetime import datetime
          def get_screen_size():????#'獲取手機屏幕大小' size_str = os.popen('adb shell wm size').read() if not size_str: print('請安裝 ADB 及驅動并配置環(huán)境變量') sys.exit() m = re.search(r'(\d+)x(\d+)', size_str) if m: return "{height}x{width}".format(height=m.group(2), width=m.group(1)) return "1920x1080"
          def get_location_bz(): img_rgb = cv.imread('test.jpg') img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY) template = cv.imread('template/bozhong.jpg',0) w, h = template.shape[::-1] res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED) #-?到1的系數 threshold = 0.85 x = 0 y = 0 loc = np.where(res >= threshold) for pt in zip(*loc[::-1]): x, y = pt[0] + w / 2, pt[1] + h / 2 return x,y
          def flower_auto(signal,name): os.system(signal) print('收了一朵{}'.format(name)) sleep(2) os.system('adb exec-out screencap -p > test.jpg') sleep(1) x, y = get_location_bz() print(x, y) if x: os.system('adb shell input tap {0} {1}'.format(x, y)) print('成功播種') sleep(0.5)
          if __name__ == "__main__": #第一步,讀取分辨率,識別手機 screen_size = get_screen_size() phone = '' print(screen_size) if '2400' in screen_size: print('這是狗順的手機') phone = 'gs' fish = 'adb shell input swipe 960 2200 960 2200 10000' blank = 'adb shell input tap 500 500' flower1 = 'adb shell input tap 273 1015' flower2 = 'adb shell input tap 829 1075' flower3 = 'adb shell input tap 292 1375' flower4 = 'adb shell input tap 800 1370' else: print('這是小仙女的手機') phone = 'xxn' fish = 'adb shell input swipe 960 2100 960 2100 10000' blank = 'adb shell input tap 500 500' flower1 = 'adb shell input tap 273 950' flower2 = 'adb shell input tap 800 950' flower3 = 'adb shell input tap 292 1283' flower4 = 'adb shell input tap 800 1278'
          capture_time = datetime.now() screen_time = datetime.now() flower_time = datetime.now() print('開始時間為{}'.format(capture_time)) while True: current_time = datetime.now() duration1 = current_time-capture_time duration2 = current_time-screen_time duration3 = current_time-flower_time #先點一下空白的地方,去掉對話框頁面 os.system(blank) sleep(0.1) # 持續(xù)點擊10s os.system(fish) # 截屏保存到桌面并保存,10s更新一次圖片 if duration1.seconds >= 10: os.system('adb exec-out screencap -p > test.jpg') print('截圖成功') capture_time = datetime.now() # 30s發(fā)送一次亮屏指令 if duration2.seconds >= 30: os.system('adb shell input keyevent 224') print('點亮屏幕') screen_time = datetime.now() #優(yōu)先進行圖像識別,如果有播種文字點擊播種文字,沒有播種文字點擊播種圖片 if duration3.seconds >= 360: # 第一遍摘花 flower_auto(flower1,'小雛菊') flower_auto(flower2,'向日葵') flower_auto(flower3,'小紅梅') flower_auto(flower4,'紫羅蘭') # 第二遍播種 flower_auto(flower1, '小雛菊') flower_auto(flower2, '向日葵') flower_auto(flower3, '小紅梅')????????????flower_auto(flower4,?'紫羅蘭') flower_time = datetime.now()

          程序思路:每隔10秒截圖一次并保存在電腦上。每個30s點亮一次屏幕防止鎖屏,每次長按手機宣傳按鈕10s,點擊宣傳之前先點擊一下空白的地方,防止有對話框冒出來。每隔10分鐘去收一次花,再播種一次。(花的成熟周期要大于10分鐘)。為了防止誤點擊,播種采用了圖像識別里的圖像匹配方法,識別到播種文字再點擊。

          一頓操作之后,成功實現了自動收花和自動點手機宣傳功能。嗯,學會寫代碼,可以有利于家庭和諧,社會穩(wěn)定。

          當然,需要改進優(yōu)化和添加的功能還有很多。比如不要總是點擊一個位置,每次間隔的時間不要是固定的,做一些其他的點擊滑動操作,跑個一個小時消停會兒等等。游戲是有一定的檢測外掛功能的,還有有一些機制設定,比如時不時冒出對話框啦等操作。

          cba16341556718e41437ab6fd00643cf.webp

          玩游戲啦,放松一下還是可以的,不可太急功近利,追求太多身外之物的小魚干。寫個小外掛也只是為了試試代碼好不好使。在我完成第一版本功能之后,出于對自己有要求,不能玩游戲玩不停考慮,仙女已經刪掉了這個游戲,(可能是意識到這個游戲的無聊了)轉戰(zhàn)刷淘寶。莫非,豈不是甲方爸爸的下個需求是搞個淘寶自動搶購商品的程序?不覺瑟瑟發(fā)抖。還好仙女不懂代碼,不然我操作代碼的時候,可能會在旁邊說,“呦,寫bug呢”!

          下期再會。

          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看免费黄视频 | 国产精品视频播放豆花网站 | 91视频人妻 | 国产一级黄片在线播放 | 激情内射亚洲免费 |