马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
去年很火的一款小游戏,我在论坛上看到有人发了源码,我就下载下来玩了下,发现不怎么完美,顶多跳到400多就死,
然后我进行优化了下,效果还是比较可观,
现在源码分两部份,上半部分是论坛下载的,全靠图色实现,效率比较低,速度慢
下半部分,准确率高,速度快,缺点只要出现一次没跳到中心圆点则死,
所以上下部分结合可以达到完美,亲测达到5万多,有兴趣的同学们可以测试下
有什么好的建议和思路,可以在下评论
[按键精灵] 纯文本查看 复制代码 /////////////////////////////////下面的是论坛上下载的./////////////////////////////////
Dim 棋子 = {3,325,677,1081,"663C36-303030","-9|-32|52303A-303030,-5|-113|704449,8|-117|B48D96,8|-71|B48D96,-9|-38|50313B,-16|-10|593332,5|-49|4F3B3B,-14|-74|553D3A,15|-8|5D3639"}
Dim x1 = 40,y1 = 254,x2 = 650,y2 = 850
Dim 背景色,终点x,终点x2,除数 = 0.4233085317460317
Dim IntX,IntY,t,i,随机数,图1=1
Do
If bb() = False Then
KeepCapture
FindMultiColor 棋子(0), 棋子(1), 棋子(2), 棋子(3), 棋子(4), 棋子(5), 0, 0.9, intX, intY
If IntX > -1 Then
背景色 = GetPixelColor(120, 400)
TracePrint IntX,IntY,背景色
终点x = Null
For i = y1 To y2 Step 2
For j = x1 To x2 Step 2
If Not(IntX + 35 > j > IntX - 35) Then
If CmpColor(j, i, 背景色, 0.96) = -1 Then
终点x = j
TracePrint j,i,GetPixelColor(j, i),背景色
Exit For
End If
End If
Next
If 终点x <> Null Then
Exit For
End If
Next
If 终点x <> Null Then
For j = x2 To x1 Step -2
If Not(IntX + 35 > j > IntX - 35) Then
If CmpColor(j, i, 背景色, 0.96) = -1 Then
终点x = (j + 终点x) / 2
TracePrint 终点x,j,i,GetPixelColor(j, i),背景色
Exit For
End If
End If
Next
t = Abs(终点x - IntX) / 除数
随机数 = sjs(50, 10)
If 图1 = 1 Then
SnapShot "/sdcard/1.png"
图1 = 2
Else
SnapShot "/sdcard/2.png"
图1 = 1
End If
TracePrint "按的时间: ",t
Touch 100 + 随机数, 250 + 随机数, t
随机数 = sjs(2100, 1900)
Delay 随机数
End If
Else
ShowMessage "没有棋子" : Delay 1000
End If
End If
ReleaseCapture
Loop
/////////////////////////////////////以下是我增加的///////////////////////////////////////////
Dim 目标物体_Arr=array(0,198,718,1078,"F5F5F5","9|0|F5F5F5,-1|3|F5F5F5,-10|0|F5F5F5,-1|-5|F5F5F5,-4|0|F5F5F5,7|-1|F5F5F5",1)
Dim 主物体_Arr=array(0,198,718,1078,"613837","3|-79|383534,27|-1|51363A,20|-41|4E4136,-18|-30|4F2A2B,0|-31|53343F",0.95)
Function bb()
Dim x,y,ZX,ZY,MX,MY
bb=True
Do
KeepCapture
Dim a= FCex(目标物体_Arr)
MX = a(0)+2:MY=a(1)+2
Dim b= FCex(主物体_Arr)
ZX = b(0):ZY=b(1)
If MX = 2 Then
bb=False
Exit Do
End If
TracePrint "目标物体",ZX,ZY
TracePrint "主物",MX,MY
If ZX > MX Then
x = ZX - MX
Else
x = MX - ZX
End If
y = ZY - MY
TouchDown 100, 100, 1
TracePrint Sqr(x^2+y^2)
If Sqr(x ^ 2 + y ^ 2) > 460 Then
Delay 31 * ((Sqr(x ^ 2 + y ^ 2)- 9) / 15)
ElseIf Sqr(x ^ 2 + y ^ 2) > 420 Then
Delay 31 * ((Sqr(x ^ 2 + y ^ 2)- 7) / 15)
ElseIf Sqr(x ^ 2 + y ^ 2) > 380 Then
Delay 31 * ((Sqr(x ^ 2 + y ^ 2) - 6) / 15)
ElseIf Sqr(x ^ 2 + y ^ 2) > 340 Then
Delay 31 * ((Sqr(x ^ 2 + y ^ 2)- 4) / 15)
Else
Delay 31 * (Sqr(x^2+y^2)/15)
End If
TouchUp 1
Delay 3000
ReleaseCapture
Loop
End Function
Function FCex(arr)
Dim intX,intY
Dim xy(1)
FCex=False
FindMultiColor arr(0), arr(1), arr(2), arr(3),arr(4),arr(5),0,arr(6),intX,intY
If intX>-1 And intY>-1 Then
xy(0) = intX
xy(1) = intY
End If
FCex = xy
End Function
Function Sjs(Zd, Zx)
Sjs = Int((Zd - Zx + 1) * Rnd() + Zx)
End Function
|