Java 50行代码开发跳一跳辅助

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bugggget/article/details/79113622

思路:

1. 在电脑上获取到手机屏幕(利用TCDisplaySink这个投屏软件)

2.创建一个和手机屏幕大小差不多的窗口,将其设置为透明并覆盖在手机屏幕上。

3. 在窗口中利用鼠标点击起点和终点获取两点之间的距离,根据距离来决定按压屏幕的时间。

4. 发送adb命令完成对屏幕的点击操作。

adb 的屏幕滑动命令:

adb shell input touchscreen swipe 366 351 366 351 2000

其中 adb shell input touchscreen swipe 366 351(这个坐标代表滑动屏幕的起点) 366 351(这个坐标代表滑动屏幕的终点) 2000(这个代表触摸屏幕的时间,2000代表2000ms)

当滑动的起点和终点坐标一样时,这个命令就变成了点击操作。

准备工作:

1. 1根数据线,用来连接手机和电脑

2. 打开手机的usb调试模式。

3. 手机安装TCDisplaySink

4. 电脑安装TCDisplaySink

5. 手机和电脑在同一局域网下,可以手机开热点。

以上步骤完成后手机屏幕就可以在电脑上显示了

2. 下载adb文件和安装adb驱动。

代码如下:

package com.baidu.Jump.util;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JLabel;
public class JumpOneJump extends JFrame{
	double xSrc, ySrc, xDest, yDest;
	String adbSrc = "D:\\百度云下载\\跳一跳素材\\ADB\\";//这个路径是你下载的adb文件的路径
	boolean flag = false;
		JumpOneJump(){
			this.setBounds(200, 100, 425, 750);//设置位置和屏幕大小
			this.setAlwaysOnTop(true);
			this.setUndecorated(true);//去除边框
			this.setVisible(true);
			this.setOpacity(0.4f);//设置窗口透明度,只有去除了边框才能设置透明度
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			JLabel jl = new JLabel();
			this.add(jl);
			this.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if(e.getButton() == MouseEvent.BUTTON1){//判断是不是鼠标左键,右键是BUTTON3
							if(!flag){
								xSrc = e.getX();
								ySrc = e.getY();
								flag = true;
								}else {
									xDest = e.getX();
									yDest = e.getY();
									flag = false;
									double _x = Math.abs(xSrc - xDest);
									double _y = Math.abs(ySrc - yDest);
									double dis = Math.sqrt(_x*_x + _y*_y);
									System.out.println("x = "+(xSrc - xDest));
									System.out.println("y = "+(ySrc - yDest));
									System.out.println("长度: "+dis);
									//cmd命令用来执行adb命令,这个命令用来点击屏幕
									String cmd = adbSrc + "adb shell input touchscreen swipe 366 351 366 351 "+(int)(dis*3.5);
									try {
										Runtime.getRuntime().exec(cmd);//执行cmd命令
									}catch(IOException e1) {
										e1.printStackTrace();
							}
								}
					}
				}
				
			});
		}
		public static void main(String[] args) {
			new JumpOneJump();
		}
}






展开阅读全文

没有更多推荐了,返回首页