微信跳一跳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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。