很多人都在郁闷TC没有标记和跳转命令,很多功能不用跳转就实现不了了吗?答案就在这里! TC的流程控制命令有:如果 if,否则 else, 如果结束 endif, 循环 while, 循环结束 endwhile, 重复 repeat, 重复结束 endrepeat, 继续 continue, 跳出 break 首先一个最简单的按键精灵标记跳转:
Rem 开始 执行的代码 Goto 开始
其实大家一看就知道了,这其实就是个死循环. 循环(真) 执行的代码
循环结束
那么有条件的跳转呢?比如按键的循环找图跳转: Rem 开始 FindPic 0,0,1024,768,"Attachment:\1.bmp",0.9,intX,intY If intX > 0 And intY > 0 Then 执行的代码 Else Goto 开始 End If
这个循环找图相信大家也都知道怎么在TC实现,复杂型:
循环(真) 图像.找图(0,0,1024,768,"rc:1.bmp",#000000,0.9,0,intX,intY) 如果(intX>0&&intY>0) 执行的代码 跳出 如果结束 循环结束
简洁型: 循环((图像.找图(0,0,1024,768,"rc:1.bmp",#000000,0.9,0,intX,intY)==-1)) 循环结束 执行的代码
好了,下面就是困扰大家的嵌套型标记跳转,首先是按键的单标记,多跳转:
Rem 开始 FindPic 0,0,1024,768,"Attachment:\1.bmp",0.9,intX,intY If intX > 0 And intY > 0 Then //我的执行代码 else Goto 开始 End If FindPic 0,0,1024,768,"Attachment:\2.bmp",0.9,intX,intY If intX > 0 And intY > 0 Then //我的执行代码 else Goto 开始 End If
代码功能描述,找图1.bmp,如果没找到跳转到找图1bmp,如果找到执行我的执行代码,然后找图2.bmp, 如果没有找到跳转到找图1.bmp,如果找到执行我的执行代码! 大家可以看到所谓的单标记多跳转就是每一个跳转都有一个条件判断 其实在TC里只要熟悉了”如果和否则”的应用一样很容易达成功能:
循环(真) 如果((FindPic 0,0,1024,768,"Attachment:\1.bmp",0.9,intX,intY)==0) //我的执行代码 如果((FindPic 0,0,1024,768,"Attachment:\2.bmp",0.9,intX,intY)==0) //我的执行代码 跳出 如果结束 如果结束 循环结束
还有就是按键的多标记多跳转: a=0 Rem 标记1 If a<4 Then 打怪捡东西 If 包裹满 Then Goto 标记2 End If a=a+1 else Goto 标记1 End If Rem 标记2 卖东西 a=0 Goto 标记1
代码实现的功能:循环打怪捡东西,每一次打怪捡东西以后检查包裹是否满,包裹满就卖东西,包裹没满就继续打怪 每循环打三次怪不管包裹满没满就去卖东西 好吧,你说可以用条件循环来写,是的按键也有条件循环,但是我们现在说的是标记跳转,虽然我自己看得也很头晕 同样的,在TC里我们也可以用条件循环来实现功能
循环(真) a=0 循环(a<=3) 打怪捡东西 如果(包裹满) 跳出 如果结束 a=a+1 循环结束 卖东西 循环结束
好了,希望大家能看得懂这些鬼画符! 最后,灵活应用流程控制命令是制作脚本最重要的手段之一,通过运用循环和如果来做出判断,从而达到脚本智能化! |