入门第一课:制作一个移动端连点器升级版
2017-10-31 17:21:02

之前讲解了如何写一个连续点击的小脚本,现在来将它改成一个,支持“指哪打哪”的连点器。

这次需要支持,设置点击的总次数、设置每次点击之间的时间间隔以及指定需要点击的位置。


根据实现效果的需要,我们的思路是,使用自定义UI界面来获取用户设置,以及用catchTouchPoint这个函数来获得需要点击的位置。


  1. 首先写一个UI界面,使用两个编辑框来获取用户设置:

    写法:

    {
       "style" : "default",
       "config" : "save_连点器.dat",
       "width" : 540,
       "height" : 560,
       "cancelscroll" : true,
       "countdown" : 10,
       "cancelname" : "取消",
       "okname" : "确定",
       "views" : [
          {
             "id" : "Edit1",
             "align" : "left",
             "color" : "0,0,0",
             "kbtype" : "number",
             "prompt" : "输入点击次数",
             "size" : "25",
             "text" : "100",
             "type" : "Edit"
          },
          {
             "id" : "Edit2",
             "align" : "left",
             "color" : "0,0,0",
             "kbtype" : "number",
             "prompt" : "输入点击时间间隔(秒)",
             "size" : "25",
             "text" : "1",
             "type" : "Edit"
          }
       ]
    }

    效果如图:

    图片.png

    UI预览效果:

    图片.png

  2. 然后在脚本代码的文件main.lua中,获取这些数据:

    我们在上一节写好的tap函数后加上展示UI界面的函数showUI

    写法:

    图片.png


    ret,results = showUI('ui.json')

    t = tonumber(results.Edit1)  -- 这是点击的次数
    timer = tonumber(results.Edit2) * 1000    -- 这是每次点击之间的时间间隔,输入的时候单位为秒,由于脚本的时间一般按照毫秒来算,这里将它转换成毫秒


  3. 然后通过获取用户点击的catchTouchPoint函数来获得一次点击的坐标:

    写法:
    toast('2秒后点击一次需要连点的位置')   --为了明确动作内容,我们先toast提示一下用户需要怎样操作,并且预留一些时间。
    mSleep(2000)
    a,b = catchTouchPoint() -- 获取一次点击

    图片.png

  4. 最后根据输入的次数和时间间隔以及捕获到的坐标,开始执行连续点击操作。

    为了方便,如果输入点击0次,则执行无限点击,如果是其他的次数,就按照实际的次数来点击。

    我们用if语句进行条件判断:

    if t == 0 then    -- 如果点击次数是0 那么执行无限循环
      while true do  -- 这里开始直到end的内容是需要无限循环的
        tap(a,b) -- 点击一次脚本,这里的a和b是刚刚使用 catchTouchPoint 获得的坐标,执行的时候同样会点击这里
        mSleep(timer) -- 停顿一段时间,这里的停顿时间timer是刚才showUI的时候填入的时间间隔单位换成毫秒后的数值
      end
    else
      --如果点击次数不是0的话,那么执行有限次数的循环,这里我们用for循环写:
      for var = 1,t do
        tap(a,b) -- 点击一次脚本,a,b坐标来源也是catchTouchPoint
        mSleep(timer) -- 停顿一段时间,timer同样来自于showUI获得的时间
      end
    end

    示意图:

    图片.png

  5. 到这里这个自定义的连点器就完成了,戳两下语法检测检查有没有语法错误,就可以开始调试使用啦。



更多知识更多交流,欢迎加入叉叉脚本学习交流群与大神们共同探讨喔!QQ群号: 496130919 点此加群