前面的几节课,我们有做了2个脚本(视频中~很重要哦),也讲了UI界面的制作以及使用,但是我们并没有把这两个属于同一个游戏的脚本结合起来,然后通过UI来控制功能,是不是我忘了来着?当然不是(就算是我也不会承认的~),那是因为在这之前,我们需要了解一个东东—-函数!作为按键精灵脚本中最核心的内容(上次图色那你也说核心。。额。不要在意这种细节),函数对于脚本来说相当于管理器,当我们写下了数量庞大的代码之后,发现有个功能需要修改,然而用到这个功能的地方很多,那么工作量十分巨大。而通过函数,可以大大减少工作量。一个最简单的函数的写法是:

  1. Function 自定义函数()
  2. TracePrint “我是自定义函数,被你调用了”
  3. End Function

函数内的内容并不会马上被执行,可以在需要用到的时候执行,增加灵活度,调用函数的方法有几个,以下的三个语句都能够调用,推荐第二个或者第三个。

  1. 自定义函数
  2. 自定义函数()
  3. Call 自定义函数()

再来看另外一个函数:

  1. Function 自定义函数(参数1,参数2)
  2. TracePrint “传入的第一个参数是:”&参数1
  3. TrcaePrint “传入的第二个参数是:”&参数2
  4. 参数1 = 参数1+1
  5. End Function
  6. 自定义函数(3,4)

我们可以将外部的参数传入到函数内处理,但是记住了,在函数里面处理的参数都是复制我们传入的参数,在这个复制体上做处理并不能影响到我们传入的参数。我们将上面的函数例子改动一下看看:

  1. Function 自定义函数(参数1,参数2)
  2. TracePrint “传入的第一个参数是:”&参数1
  3. TrcaePrint “传入的第二个参数是:”&参数2
  4. 参数1 = 参数1+1
  5. End Function
  6. Dim 参数 = 3
  7. 自定义函数(参数,4)
  8. TracePrint 参数

我们将参数3传递了进去,而在函数内,对传递进去的3进行了加1处理,那么第八行会输出原始的3还是输出加1之后的4呢?尝试一下,得出了结果是3(下图),这证明了我们传递进去的参数并不会在函数内被修改。

 

 

最后来看看另一个函数:

  1. Function 比大小(参数1, 参数2)
  2. If 参数1 > 参数2 Then
  3. 比大小 = 参数1
  4. ElseIf 参数1 < 参数2 Then
  5. 比大小 = 参数2
  6. Else
  7. TracePrint “两个数一样大”
  8. End If
  9. End Function
  10. Dim numA,numB
  11. numA = 3
  12. numB = 3
  13. If 比大小(numA, numB) <> null Then
  14. TracePrint “较大的值是:”&比大小(numA,numB)
  15. End If

稍微长了点,但是我们已经是中学生,完全可以接受,我们先看看函数体部分,函数传入了两个参数,并且进行比较,比较后的结果这么写:函数名=变量,意思是这个函数返回了一个变量,例子中参数1大于参数2时,函数返回参数1参数1大与参数2时候,函数返回参数2,其他情况时(相等),输出信息两个数一样大

再来看看怎么调用他,有人直接用“TracePrint 比大小(numA,numB)”来输出,当两个数不一样大小时,确实能正常输出,因为他们都会返回一个值,但是当两个数一样的时候,函数并没有返回值,或者说返回值是空(null)的,所以,我们使用前可以先做一个判定(我们学过的判断语句),返回值不为空才输出较大的值。

通过函数,我们将可以将多个单独功能的脚本封装起来做在一起,并提供了友好的操作界面供用户选择,而这就是函数的强大之处。有的童鞋可能已经学过一些,使用子程序(Sub,功能和Function基本一样)来做。但是在这里,我并不推荐使用子程序,他们之间的最大区别是返回值,函数可以有返回值,而子程序没有,其他我们可以理解为完全一样。既然是大于等于的关系,那么我们应该忘掉Sub,尽情使用Function。

以下为视频中的例子源码:

UI界面:

  1. 界面1:
  2. {
  3. 文字框:
  4. {
  5. 注释:”文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性”,
  6. 名称:”文字框1″,
  7. 显示内容:”选择功能”,
  8. 文字大小:0,
  9. 高度:0,
  10. 宽度:0
  11. },
  12. 下拉框:
  13. {
  14. 注释:”初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。”,
  15. 名称:”功能序号”,
  16. 选项:
  17. [
  18. “踩蟑螂”,
  19. “拍红绿”,
  20. ],
  21. 初始选项:0
  22. },
  23. }

脚本源码:

    1. Function 踩蟑螂()
    2. Do
    3. Tap 594, 1173
    4. Delay 10
    5. Tap 115, 1179
    6. Delay 10
    7. Tap 360, 1192
    8. Delay 10
    9. Loop
    10. End Function
    11. Function 拍红绿()
    12. Dim intX,intY
    13. Do
    14. FindMultiColor 45, 728, 640, 834, “3EA519”, “32|-2|46B61D,33|23|45B41D”, 0, 0.9, intX, intY
    15. If intX > -1 And intY > -1 Then
    16. Tap 545,1175
    17. End If
    18. Delay 20
    19. FindMultiColor 45, 728, 640, 834, “FFFFFF”, “32|-8|0339E4,30|16|0233DB”, 0, 0.9, intX, intY
    20. If intX > -1 And intY > -1 Then
    21. Tap 195,1192
    22. End If
    23. Loop
    24. End Function
    25. Dim 功能序号 = ReadUIConfig(“功能序号”)
    26. TracePrint “你选择的功能号为: “&功能序号
    27. If 功能序号 = 0 Then
    28. 踩蟑螂()
    29. ElseIf 功能序号 = 1 Then
    30. 拍红绿()
    31. End If

声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。