close
上一節說到取遊戲窗口的位置,那麼取到的窗口坐標是遊戲窗口最左上角開始計算的,因為遊戲裡的小窗口是固定的,所以不管遊戲窗口怎麼改變位置,相對位置是不會變的。 繼續設計,思路: 取到坐標點後,利用取屏幕顏色坐標來獲取指定的的顏色,我們就可以作為分析遊戲血藍的信息了。 每次遊戲重新啟動後,固定位置可能發生變化,那麼我們需要一個可以快速獲取坐標和顏色的方法,要直觀且方便。 所以,我們採取的方法就是 ,利用截屏技術,獲取遊戲窗口上一部分的遊戲畫面,把動態的轉為靜態,再在靜態圖上獲取顏色點。 下面是實現代碼: Private Sub SetPicPixel(mx As Long, my As Long) GameFormDC = GetDC(GameFormHwnd) Dim i As Long, j As Long, pdx As Long, pdy As Long pdx = Picture2.Width pdy = Picture2.Height BitBlt Picture2.hdc, 0, 0, pdx, pdy, GameFormDC, mx - pdx / 2, my - pdy / 2, SRCCOPY SetPixel Picture2.hdc, pdx \ 2, pdy \ 2, vbWhite Picture2.Refresh ReleaseDC GameFormHwnd, GameFormDC Picture3.PaintPicture Picture2.Image, 0, 0, Picture2.Width * (Picture3.Width / Picture2.Width), Picture2.Height * (Picture3.Width / Picture2.Width) End Sub 在窗口上放置2個PictureBox 控件,名字為 Picture2 和 Picture3 這段代碼的功能就是,在已經獲取了遊戲窗口句柄後,通過API函數,將遊戲窗口的一部分畫面繪製到Picture2 上,在經過放大處理,繪製到Picture3 上 效果圖如下: (好像在官網也看不到圖片) 經過放大以後,就可以利用中間的白點,上下左右移動,獲取我們需要的坐標了,當然,相對坐標必須弄清楚,不然取不到正確的坐標。 當取色和取坐標模塊完成的時候,我們就可以開始設計真正有用的部分了。 在武林還可以模擬按鍵的時候,我們用模擬按鍵最方便,不用去分析遊戲龐大的內存,就可以很簡單的控制遊戲打怪撿物等。 到這裡差不多可以設計掛的各個功能了,至於怎麼設計,每人的算法可能都不太一樣,下面我就把顏色版的完整源碼傳上來。裡面基本上沒有註釋,呵呵,因為我太懶勒。有什麼不明白的地方,回帖或發帖,我隔段時間就回來看看,和大家一起交流交流。 下一節,我們正式進入 內掛的製作學習中 轉自TW-SHARE |
全站熱搜