adb工具的简单指令&Jump

贴图三部曲:

贴图三部曲:
1.定义		int x;			装图片
2.加载		scanf("%d",&x);从键盘获取一个数据存储到x中
3.显示		printf("%d\n",x);
IMAGE img;

loadimage(&img,"8.bmp");//加载图片

putimage(100,200, &img);  //显示图片

创建界面

initgraph(900, 900);// 宽度:900 高度:900  px像素
system("pause");
//创建显示界面         显示控制台
initgraph(900, 900, SHOWCONSOLE);

截图(截图到剪切板)

//1. 获取手机的实时画面  截取图片至剪切板  low保存只能是png
//2. 从剪切板 保存图片下来
system("adb shell screencap -p /sdcard/screen.png");
system("adb pull /sdcard/screen.png");

修改图片格式 格式转换

CImage cimage;
cimage.Load("screen.png");  //加载要修改的图
cimage.Save("screen.jpg");  //保存修改之后的图

显示图片 加载 只能加载 jpg bmp 格式的图片

IMAGE Screen, img; //定义
loadimage(&Screen, "screen.jpg");//加载

裁剪图片

SetWorkingImage(&Screen); //裁剪的图片为Screen
getimage(&img, 100, 800, 900, 900); //裁剪图片
SetWorkingImage(NULL);//结束裁剪
putimage(0, 0, &img); //显示

获取起点坐标 RGB(55,60,100)

	int x, y; //表示人物的起点坐标
		for (y = 899; y >= 0; y--) { //行号 最底下往上面找
			int flag = 0; //假 不成立
			for (x = 0; x < 900; x++) {
				//getpixel(x,y) 获取x,y坐标的颜色
				if (RGB(55, 60, 100) == getpixel(x, y)) {
					flag = 1;//真 成立
					break; //退出x层循环
				}
			}
			if (flag)break;//退出y层循环
		}

获取终点坐标

	int dx, dy;//表示人物的终点坐标
	for (dy = 0; dy <900; dy++) { //行号 最底下往上面找
		int flag = 0; //假 不成立
		for (dx = 0; dx < 900; dx++) {
			//两颜色比较 差距如果大于25 认为这个dx,dy就是终点位置
			if (Similar(bk, getpixel(dx, dy))>25) {
				flag = 1;
				break;//退出dx层循环
			}
		}
		if (flag)break;//退出dy层循环
	}

根据两点求取距离长度

	double d = sqrt(double((x - dx)*(x - dx) + (y - dy)*(y - dy)));

根据 距离 ÷ 速度 = 按压时长

	double time = d * 1.18;  

根据时长模拟人物按压手机屏幕使之跳跃

	char Str[128];
	//system("adb shell input swipe 200 200 195 195  time"); 
	//字符串拼接函数
	sprintf(Str, "adb shell input swipe 200 200 195 195 %d", (int)time);
	system(Str);//执行跳跃指令
	Sleep(3000);
posted @ 2020-10-19 23:03  xxxbx  阅读(272)  评论(0)    收藏  举报