小编给大家分享一下怎样用python制作游戏脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
代码:
from time import sleep from pymouse import PyMouse from PIL import Image,ImageGrab from selenium import webdriver import time url = "http://www.4399.com/flash/178030_3.htm" #9个坑所在的矩形图的坐标 coordinate = (395,530,1065,930) #x,y坐标,n为缩放倍数的倒数,a为需要结合缩放倍数的横坐标,b为需要结合缩放倍数的纵坐标 x,y=0,0 n=1/1.5 a,b=0,0 #9个打地鼠的坐标 loc1 = (488,562) loc2 = (721,581) loc3 = (969,578) loc4 = (466,732) loc5 = (725,706) loc6 = (1000,707) loc7 = (469,878) loc8 = (716,869) loc9 = (975,877) Loc_list = [(488,562)] Loc_list.append(loc2) Loc_list.append(loc3) Loc_list.append(loc4) Loc_list.append(loc5) Loc_list.append(loc6) Loc_list.append(loc7) Loc_list.append(loc8) Loc_list.append(loc9) def touch(x,y,mouse=1): a = x*n b = y*n m.click(int(a),int(b),mouse) class GameScript: def __init__(self): chrome = webdriver.Chrome('D:/googledriver/chromedriver.exe') chrome.maximize_window() chrome.get(url) chrome.implicitly_wait(30) def FlashOpen(self): touch(1660,80) touch(1400,217) #等网页加载出来,点击允许 sleep(3) touch(1482,469) #关闭页面 sleep(1) touch(707,25) #授权FLASH sleep(1) touch(723,700) sleep(1) touch(476,290) #关闭游戏声音 touch(168,26,2) sleep(1) touch(282,258) def start(self): #点击开始游戏按钮 touch(750,800) touch(1075,322) sleep(1) def CutImage(self): image = ImageGrab.grab(coordinate) width,height = image.size #用于存放九张小图的左上和右下坐标 box_list = [] #小图的宽 cut_width = int(width/3) #小图的高 cut_height = int(height/3) #分切9图,先获得9组crop函数需要的坐标,再用crop函数截出来 for i in range(0,3): for j in range(0,3): box = (j*cut_width, i*cut_height, (j+1)*cut_width, (i+1)*cut_height) box_list.append(box) image_list = [image.crop(box) for box in box_list] #返回的列表里面为图片 return image_list #使两张图片统一格式,方便比较 def Get_Same_Image(image): size = (256,256) return image.resize(size).convert('RGB') #比较两张图片的直方图,以获得相似度 def Difference(list1,list2): sum1 = 0 for i in range(len(list1)): if(list1[i] == list2[i]): sum1 += 1 else: #依照公式可获得 sum1 += 1-(abs(list1[i] - list2[i]) / max(list1[i],list2[i]) ) return sum1 / len(list1) def Get_Similarity(image1,image2): #统一格式 img1 = Get_Same_Image(image1) img2 = Get_Same_Image(image2) #获得直方图 list1 = img1.histogram() list2 = img2.histogram() return Difference(list1, list2) def AutoPlay(image_list): Timage = Image.open("C:/Users/Fatzj/Desktop/game script/yangping.png") for n in range(len(image_list)): #相似度大于0.45就拍一下 if(Get_Similarity(image_list[n], Timage) >= 0.45): #从Loc_list获得要点击的坐标 x = Loc_list[n][0] y = Loc_list[n][1] touch(x,y) #移开锤子,避免干扰对比 touch(1075,322) if __name__ == "__main__": m = PyMouse() demo = GameScript() demo.FlashOpen() sleep(25) demo.start() time1 = 0 while(time1 < 60): start = time.perf_counter() image_list = demo.CutImage() AutoPlay(image_list) end = time.perf_counter() time1 += end-start print("结束运行")
以上是“怎样用python制作游戏脚本”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。