微信跳一跳php代码实现
本文实例为大家分享了php微信跳一跳的具体代码,供大家参考,具体内容如下
>16)&0xFF; $g1=($rgb1>>8)&0xFF; $b1=$rgb1&0xFF; $r2=($rgb2>>16)&0xFF; $g2=($rgb2>>8)&0xFF; $b2=$rgb2&0xFF; returnabs($r1-$r2)<10&&abs($b1-$b2)<10&&abs($g1-$g2)<10; } functiongetStart(){ global$image; $width=imagesx($image); $height=imagesy($image); for($i=$height/3;$i<$height/3*2;$i++){ for($j=0;$j<$width-75;$j++){ if(checkStart($i,$j)){ $x=$i; $y=$j+37; } } } returnarray($x,$y); } functiongetEnd(){ global$image; global$sx,$sy; $l_r=0; $cnt=0; $width=imagesx($image); $height=imagesy($image); for($i=$height/3;$i<$sx;$i++){ $demo=imagecolorat($image,0,$i); for($l=0;$l<$width;$l++){ $c=imagecolorat($image,$l,$i); if(!similar($c,$demo)){ $r=$l; while($r+1<$width&&!similar(imagecolorat($image,$r+1,$i),$demo)){ $r++; } if(abs(($l+$r)/2-$sy)>20){ if(!isset($mid))$mid=($l+$r)/2; if($r-$l>BODY_WIDTH*1.1){ if($r<=$l_r){ $cnt++; if($cnt==3){ return[$i,round($mid)]; } } else{ $cnt=0; } $l_r=$r; } } $l=$r; } } } return[$sx-round(abs($mid-$sy)/sqrt(3)),round($mid)];; } $cheet=[ 2829129,2829129,2829129,2829129,2829387,2960716,2960461, 2960463,3026256,3026256,3092563,3092563,3158614,3158615, 3224408,3290202,3356252,3356252,3356252,3356767,3357024, 3553376,3618913,3618913,3553891,3684707,3750243,3684706, 3684707,3684707,3684707,3750243,3618914,3618913,3684450, 3750243,3750243,3750243,3750243,3750243,3684706,3618913, 3618913,3618913,3684450,3684706,3684706,3684450,3684450, 3750243,3750243,3684450,3684706,3750243,3618913,3618913, 3618913,3684448,3749727,3749727,3749727,3749727,3749727, 3749470,3749469,3749469,3749721,3749720,3749720,3814998, 3814997,3880534,3880533,3946835,3881042 ]; functioncheckStart($sx,$sy){ global$cheet; global$image; for($i=0;$i<75;$i++){ $rgb=imagecolorat($image,$sy+$i,$sx); if(!similar($rgb,$cheet[$i])){ returnfalse; } } returntrue; } functionscreencap(){ ob_start(); system('adbshellscreencap-p/sdcard/screen.png'); system('adbpull/sdcard/screen.png.'); ob_end_clean(); } functionpress($time){ system('adbshellinputswipe50016005001601'.$time); } for($id=0;;$id++){ echosprintf("#%05d:",$id); //截图 screencap(); //获取坐标 $image=imagecreatefrompng('screen.png'); list($sx,$sy)=getStart(); list($tx,$ty)=getEnd(); if($sx==0)break; echosprintf("(%d,%d)->(%d,%d)",$sx,$sy,$tx,$ty); //图像描点 imagefilledellipse($image,$sy,$sx,10,10,0xFF0000); imagefilledellipse($image,$ty,$tx,10,10,0xFF0000); imagepng($image,sprintf("screen/%05d.png",$id)); //计算按压时间 $time=pow(pow($tx-$sx,2)+pow($ty-$sy,2),0.425)*PRESS_TIME; $time=round($time); echosprintf("time:%f\n",$time); press($time); //等待下一次截图 sleep(SLEEP_TIME); }
###################我是分割线######################
另一种方法
functionjump(){ sleep(2.5);//延迟2.5秒,音乐盒、便利店、井盖等站2秒加分 $screenShell="cdD:\&adbshell/system/bin/screencap-p/sdcard/screenshot.png&adbpull/sdcard/screenshot.pngd:jumper/screenshot.png"; exec($screenShell);//截图 $i=imagecreatefrompng("d:jumper/screenshot.png");//读取图片 $point=array(); for($y=400;$y>16)&0xFF; $point["now"]["g"]=($rgb>>8)&0xFF; $point["now"]["b"]=$rgb&0xFF; if(isset($point["last"]["r"])){ if(!isset($point["x"]["a"])){ if(abs($point["now"]["r"]-$point["last"]["r"])>1 orabs($point["now"]["g"]-$point["last"]["g"])>1 orabs($point["now"]["b"]-$point["last"]["b"])>1 ){ $point["x"]["a"]=$x; if(imagesx($i)/2>$x){ $point["direction"]="left"; }else{ $point["direction"]="right"; } $point["a"]=$point["last"]; } }else{ if($point["now"]==$point["a"]){ $point["x"]["b"]=$x-1; break; } } } $point["last"]=$point["now"]; } if(isset($point["x"])){ break; } } $param["left"]=3750; $param["right"]=3100; $time=pow((abs(imagesx($i)/2-($point["x"]["a"]+$point["x"]["a"])/2)/imagesx($i)),1)*$param[$point["direction"]]; if($time<400){ $time+=($param[$point["direction"]]/300); } $time=round($time,0); echo"direction:".$point["direction"]; echo"\nx.a:".$point["x"]["a"]; echo"\nx.b:".$point["x"]["b"]; echo"\ntime:".$time."\n"; $touchShell="cdD:\&adbshellinputswipe50250250250".$time; exec($touchShell); imagedestroy($i); jump(); } jump(); 更多内容大家可以参考专题《微信跳一跳》进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。