前面的几节课,我们有做了2个脚本(视频中~很重要哦),也讲了UI界面的制作以及使用,但是我们并没有把这两个属于同一个游戏的脚本结合起来,然后通过UI来控制功能,是不是我忘了来着?当然不是(就算是我也不会承认的~),那是因为在这之前,我们需要了解一个东东—-函数!作为按键精灵脚本中最核心的内容(上次图色那你也说核心。。额。不要在意这种细节),函数对于脚本来说相当于管理器,当我们写下了数量庞大的代码之后,发现有个功能需要修改,然而用到这个功能的地方很多,那么工作量十分巨大。而通过函数,可以大大减少工作量。一个最简单的函数的写法是:
- Function 自定义函数()
- TracePrint “我是自定义函数,被你调用了”
- End Function
函数内的内容并不会马上被执行,可以在需要用到的时候执行,增加灵活度,调用函数的方法有几个,以下的三个语句都能够调用,推荐第二个或者第三个。
- 自定义函数
- 自定义函数()
- Call 自定义函数()
再来看另外一个函数:
- Function 自定义函数(参数1,参数2)
- TracePrint “传入的第一个参数是:”&参数1
- TrcaePrint “传入的第二个参数是:”&参数2
- 参数1 = 参数1+1
- End Function
- 自定义函数(3,4)
我们可以将外部的参数传入到函数内处理,但是记住了,在函数里面处理的参数都是复制我们传入的参数,在这个复制体上做处理并不能影响到我们传入的参数。我们将上面的函数例子改动一下看看:
- Function 自定义函数(参数1,参数2)
- TracePrint “传入的第一个参数是:”&参数1
- TrcaePrint “传入的第二个参数是:”&参数2
- 参数1 = 参数1+1
- End Function
- Dim 参数 = 3
- 自定义函数(参数,4)
- TracePrint 参数
我们将参数3传递了进去,而在函数内,对传递进去的3进行了加1处理,那么第八行会输出原始的3还是输出加1之后的4呢?尝试一下,得出了结果是3(下图),这证明了我们传递进去的参数并不会在函数内被修改。
最后来看看另一个函数:
- Function 比大小(参数1, 参数2)
- If 参数1 > 参数2 Then
- 比大小 = 参数1
- ElseIf 参数1 < 参数2 Then
- 比大小 = 参数2
- Else
- TracePrint “两个数一样大”
- End If
- End Function
- Dim numA,numB
- numA = 3
- numB = 3
- If 比大小(numA, numB) <> null Then
- TracePrint “较大的值是:”&比大小(numA,numB)
- End If
稍微长了点,但是我们已经是中学生,完全可以接受,我们先看看函数体部分,函数传入了两个参数,并且进行比较,比较后的结果这么写:函数名=变量,意思是这个函数返回了一个变量,例子中参数1大于参数2时,函数返回参数1,参数1大与参数2时候,函数返回参数2,其他情况时(相等),输出信息“两个数一样大”。
再来看看怎么调用他,有人直接用“TracePrint 比大小(numA,numB)”来输出,当两个数不一样大小时,确实能正常输出,因为他们都会返回一个值,但是当两个数一样的时候,函数并没有返回值,或者说返回值是空(null)的,所以,我们使用前可以先做一个判定(我们学过的判断语句),返回值不为空才输出较大的值。
通过函数,我们将可以将多个单独功能的脚本封装起来做在一起,并提供了友好的操作界面供用户选择,而这就是函数的强大之处。有的童鞋可能已经学过一些,使用子程序(Sub,功能和Function基本一样)来做。但是在这里,我并不推荐使用子程序,他们之间的最大区别是返回值,函数可以有返回值,而子程序没有,其他我们可以理解为完全一样。既然是大于等于的关系,那么我们应该忘掉Sub,尽情使用Function。
以下为视频中的例子源码:
UI界面:
- 界面1:
- {
- 文字框:
- {
- 注释:”文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性”,
- 名称:”文字框1″,
- 显示内容:”选择功能”,
- 文字大小:0,
- 高度:0,
- 宽度:0
- },
- 下拉框:
- {
- 注释:”初始选项是可选属性,默认值为0。模版中设置了三个选项,您可以根据需要增加或减少,注意各选项之间用逗号分隔。”,
- 名称:”功能序号”,
- 选项:
- [
- “踩蟑螂”,
- “拍红绿”,
- ],
- 初始选项:0
- },
- }
脚本源码:
-
- Function 踩蟑螂()
- Do
- Tap 594, 1173
- Delay 10
- Tap 115, 1179
- Delay 10
- Tap 360, 1192
- Delay 10
- Loop
- End Function
- Function 拍红绿()
- Dim intX,intY
- Do
- FindMultiColor 45, 728, 640, 834, “3EA519”, “32|-2|46B61D,33|23|45B41D”, 0, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- Tap 545,1175
- End If
- Delay 20
- FindMultiColor 45, 728, 640, 834, “FFFFFF”, “32|-8|0339E4,30|16|0233DB”, 0, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- Tap 195,1192
- End If
- Loop
- End Function
- Dim 功能序号 = ReadUIConfig(“功能序号”)
- TracePrint “你选择的功能号为: “&功能序号
- If 功能序号 = 0 Then
- 踩蟑螂()
- ElseIf 功能序号 = 1 Then
- 拍红绿()
- End If
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。