文章目录
- 原理
- 全部代码
原理
启动后截图。
丢球以后再截图。
如果两图一致,说明没成功,读档重来。
如果两图不一致,说明成功了。
while True:press(A)time.sleep(2)if is_same_img(ImageGrab.grab(), data_img):press(save2)else:break
全部代码
cai_yang.py没改动。
from PIL import Imageimport random
# 获得采样数据
def cai_yang(target: Image, rec: (int, int, int, int), count):result = []i = 1while i <= count:# 随机XYx, y = random.randint(rec[0], rec[2]), random.randint(rec[1], rec[3])result.append(((x, y), target.getpixel((x, y))))i = i + 1return result
# 获得对比结果
def is_same_img(img: Image, data):for i in data:if img.getpixel(i[0]) != i[1]:return Falsereturn True
main.py。
import timefrom PIL import Image, ImageGrab
from settings import *
from cai_yang import *
# 脚本核心
def a1():c.press(ACCELERATE)# 截屏data_img = cai_yang(ImageGrab.grab(), rec, 8)# 选中精灵球press(RIGHT)press(A)press(A)# 存档c.press(save1)c.press(save2)time.sleep(0.1)c.release(save1)c.release(save2)while True:press(A)time.sleep(2)if is_same_img(ImageGrab.grab(), data_img):press(save2)else:breakc.release(ACCELERATE)
def press(key, interval=0.2, interval2=0.1): # 按一下c.press(key)time.sleep(interval)c.release(key)time.sleep(interval2)
if __name__ == '__main__':# 键盘事件处理def a0(key):if key == kb.Key.f12:a1()# 控制键盘c = kb.Controller()# 监听键盘with kb.Listener(on_press=a0):while True:pass
settings.py。键位设置。
from pynput import keyboard as kb
# 键位设置
RIGHT = "d"
A = "j"
ACCELERATE = "u"
save1 = kb.Key.shift
save2 = kb.Key.f1rec = (1272, 106, 1549, 431)