我想用VB寫一個程式,自動讀取固定位置的撲克牌。然后跟已經截好的圖作對比得出牌點花色,請問該怎么做。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
http://www.autohotkey.comuj5u.com熱心網友回復:
如果你是想做一些游戲的記牌器,我建議你采用讀記憶體的方式.采用影像識別.個人認為有以下難點要處理.
1.不同的人采用不同的分辯率不好處理.
2.如果程式對紙牌的面像進行了處理(比如:更像后放大了影像或縮小了影像就不行了)
而讀記憶體方式比較好.資料一定會在記憶體里面的,像修改游戲一樣,最開始只要多讀取幾次,找到相要的資料后.后面就按資料的存盤位置及格式讀取就行了.(除非更新后更改資料結構.但是資料結構不是說改就改的)
uj5u.com熱心網友回復:
樓上說的不錯。uj5u.com熱心網友回復:
頂樓上,說的好uj5u.com熱心網友回復:
3F 的想法是好,但實作的難度不是一般般的。你如何去找那個記憶體資料的地址???
我覺得還是只有從螢屏影像入手,容易實作些。
撲克游戲,不管螢屏解析度如何,它畫出來的牌,大小應該是一樣的(象素數)。
雖然不同的解析度下,牌在螢屏上的位置會不一樣,但可以進行“邊界掃描”:
每張牌都會有“邊框線”(顏色基本上是固定的,或有限的幾種,并且跟視窗背景色或牌面底色是不同的);
按視窗大小確定大致位置;
按方位(上家、下家、對家)先掃描豎邊框位置(對家,水平線掃描)或橫邊框(上家、下家,垂直線掃描)。
確定牌的橫邊框和豎邊框位置后,它的點數和花色的相對位置是固定的!
有了第一張牌的位置,按牌距,就能確定下一張牌的位置、共有幾張牌。
uj5u.com熱心網友回復:
的確,這涉及到外掛開發方面的知識,從技術上看,不關心開發工具的情況下,那么操作記憶體可行的方式,無非就是先用些工具找出相關記憶體地址,然后用類似的方法模擬尋址程序,但如果前提是用VB來寫,那么可行性就不大了。因為有些東西可能還做了特殊處理,不搞注入還沒法正確操作目標記憶體,從VB的角度看,還不如影像識別來得簡單,因為有些技術用VB是很難實作的,必須換工具。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/142419.html
標籤:API
上一篇:關于TIMER的使用
