python3实现跳一跳点击跳跃

python3实现跳一跳点击跳跃,第1张

概述借鉴了网上一些大神的代码和思路,这里整理一下写出点击跳跃玩跳一跳这个小游戏的思路

借鉴了网上一些大神的代码和思路,这里整理一下写出点击跳跃玩跳一跳这个小游戏的思路

一、整体思路

棋子所在的坐标以及下一步所要到的坐标,根据两个坐标计算出两点之间距离进行跳跃。

二、分布思路

1、根据命令截图获取初始图保存到手机,然后上传到本地文件夹

2、将获取的截图放入新建的坐标轴中(matplotlib)

3、通过鼠标点击事件获取所在初始坐标以及重点坐标,并计算出直线距离

4、进行跳跃,跳跃完成后清空坐标并更新截图

三、所用到的相关技术或模块

1、python3基础

2、numpy

3、matplotlib

4、python中的os模块

5、adb工具包

四、代码

__author__ = '周雁冰'import osimport PIL,numpyimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimationimport timeneed_update = True# 获取手机截图def get_screen_image(): os.system('adb shell screencap -p /sdcard/screen.png') # 获取手机当前界面截图 os.system('adb pull /sdcard/screen.png') # 下载当前截图到电脑当前文件夹下 return numpy.array(PIL.Image.open('screen.png')) #转为array返回# 计算弦的长度def jump_to_next(point1,point2): x1,y1 = point1; x2,y2 = point2 distance = ((x2-x1)**2 + (y2-y1)**2)**0.5 # 计算弦长度 os.system('adb shell input swipe 320 410 320 410 {}'.format(int(distance*1))) # 按下横纵左边 放开横纵坐标 按压时间 2K的屏幕d跳系数为1# 绑定鼠标单击事件def on_calck(event,coor=[]): # [(x,y),(x2,y2)] global need_update coor.append((event.xdata,event.ydata)) # 获取x和y坐标位置放入coor数组中 if len(coor) == 2: jump_to_next(coor.pop(),coor.pop()) # 获取到两个坐标后计算长度并清空数组 need_update = True def update_screen(frame): # 更新图片 global need_update if need_update: time.sleep(1) # 因为跳跃需要时间所以这里需要休眠1s,然后重新获取图片 axes_image.set_array(get_screen_image()) need_update = False return axes_image,# 返回元祖figure = plt.figure() # 创建一个空白的的图片对象/创建画布axes_image = plt.imshow(get_screen_image(),animated=True) # 把获取的图片放进坐标轴figure.canvas.mpl_connect('button_press_event',on_calck)ani = FuncAnimation(figure,update_screen,interval=50,blit=True) # 实例化 FuncAnimation更新画布图片 50为50msplt.show() # 展示坐标图

请点击这里获取:跳一跳源代码

更多内容大家可以参考专题《微信跳一跳》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的python3实现跳一跳点击跳跃全部内容,希望文章能够帮你解决python3实现跳一跳点击跳跃所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1200780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存