python3實現跳一跳點選跳躍

2022-10-04 20:30:28 字數 2021 閱讀 6612

一、整體思路

棋子所在的座標以及下一步所要到的座標,根據兩個座標計算出兩點之間距離進行跳躍。

二、分布思路

1、根據命令截圖獲取初始圖儲存到手機,然後上傳到本地資料夾

2、將獲取的截圖放入新建的座標軸中(matplotlib)

3、通過滑鼠點選事件獲取所在初始座標以及重點座標,並計算出直線距離

4、進行跳躍,跳躍完成後清空座標並更新截圖

三、所用到的相關技術或模組

1、python3基礎

2、numpy

3、matplotlib

4、python中的os模組

5、adb工具包

四、**

__author__ = '周雁冰'

import os

import pil,numpy

import matplotlib.pyplot as plt

from matplotlib.animation import funcanimation

import time

need_update = true

# 獲取手機截圖

def get_screen_imag程式設計客棧e():

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的螢幕彈跳係數為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為50ms

plt.show() # 展示座標圖

這裡獲取:跳一跳源**

本文標題: python3實現跳一跳點選跳躍

本文位址: /jiaoben/python/217036.html

python實現跳一跳

今天我們使用python來做一件有意思的事,使用python來完成跳一跳這個遊戲。在這裡先感謝一位大牛文章的啟迪,相關的程式和安裝包也由此位大牛提供。python輔助作者github賬號為 wangshub。作者的知乎專欄為 首先我們需要做好準備工作 windows10,乙個安卓真機,python3...

微信跳一跳python 微信跳一跳Python

1 安裝python,我用的是python2.7 5.安裝pillow,放在scripts資料夾中,通過 pip install pillow安裝 6.安裝adb工具包,可以直接放在專案 的資料夾裡面,或者放在c盤目錄不過要配置一下環境變數,我這裡是直接放在專案 資料夾中。內建了cmd 命令 7.把...

字母跳一跳

題目 有一無限長的迴圈字母表,任意輸入乙個字母,按照規定時刻進行跳轉,每個時刻跳轉規定的步數,最後顯示跳轉後得到的字母 include using namespace std int main char i word 輸入字母 int i k,i t,n 跳轉步數k,時間t,組數n cin n ch...