找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5889|回复: 7

[教程源码] 微信小游戏(跳一跳)

[复制链接]

18

主题

48

回帖

104

积分

按键电脑&手机班学员

紫猫助手

鲜花
0
猫粮
494
QQ
发表于 2018-3-23 19:12:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
去年很火的一款小游戏,我在论坛上看到有人发了源码,我就下载下来玩了下,发现不怎么完美,顶多跳到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


评分

参与人数 1猫粮 +5 收起 理由
紫猫 + 5 很给力!

查看全部评分

楼主热帖
承接PC版插件定制,Office办公软件辅助,网页相关[Post,Get]软件定制,网页批量注册或采集功能定制.等,点击我>>>租售网络授权验证系统!

0

主题

11

回帖

11

积分

按键电脑班学员

鲜花
0
猫粮
344
发表于 2018-3-27 08:15:54 | 显示全部楼层
顶顶顶顶

0

主题

18

回帖

18

积分

按键电脑&手机班学员

鲜花
0
猫粮
157
发表于 2018-4-17 00:18:23 | 显示全部楼层
首先谢谢分享!!当然您要是稍微加些注释,看来就更好了。。。不然一时半会,会想不起某个子程序是干嘛的,特别是您加的代码,不是明了,当然可能我技术成面不够。。。不能一眼望穿。

18

主题

48

回帖

104

积分

按键电脑&手机班学员

紫猫助手

鲜花
0
猫粮
494
QQ
 楼主| 发表于 2018-4-17 18:36:35 | 显示全部楼层
这个比较简单,我也没做注释了.其本用的是三角函数
承接PC版插件定制,Office办公软件辅助,网页相关[Post,Get]软件定制,网页批量注册或采集功能定制.等,点击我>>>租售网络授权验证系统!

0

主题

1

回帖

1

积分

按键电脑&手机班学员

鲜花
0
猫粮
63
发表于 2018-5-31 14:04:29 | 显示全部楼层
这个跳一跳脚本的分辨率是多少

0

主题

1

回帖

1

积分

学前班

鲜花
0
猫粮
41
发表于 2018-5-31 15:35:04 | 显示全部楼层
不管如何,谢谢了。。。
  • 打卡等级:初涉江湖

0

主题

108

回帖

108

积分

小学生

鲜花
0
猫粮
585
发表于 2020-12-8 21:01:16 | 显示全部楼层
        很给力!
  • 打卡等级:初涉江湖

0

主题

108

回帖

108

积分

小学生

鲜花
0
猫粮
585
发表于 2020-12-18 18:58:53 | 显示全部楼层
♪(^∇^*)♪(^∇^*)♪(^∇^*)♪(^∇^*)♪(^∇^*)♪(^∇^*)♪(^∇^*)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-5-1 09:33

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表