批处理实现乱雨纷飞(黑客帝国特效)
废话少说,直接先上一个特效代码
@echooff&modeconcols=42lines=20&color02 setm=1&setv=1 setcode==^^^&%%%^:!$#^>^<:=~*()@"'`;\|-_+?,.ghijklmnopqrstuvwxyz0123456789abcdef setlocalenabledelayedexpansion :begin set/anum=%random%%%40+1,num1=num,num=200/num title乱雨纷飞,当前雨量:%num1% :lp set/aa=%random%%%63,b=%random%%%%num% seta=!code:~%a%,1! if%b%equ0(set"b=!a!")else(set"b=") setstr%m%=!str%m%!!b! set/an+=1 if%n%lss40gotolp set/ax+=1,w+=1 if%x%equ40call:lop cls&for/l%%iin(%m%,-1,%v%)doecho.!str%%i! set/am+=1 if%m%geq20set/av+=1 if%w%equ100(setw=0&gotobegin)else(setn=0&gotolp) :lop set/aa=%random%%%15+1 seta=!code:~-%a%,1! color0!a!&setx=0
有小伙伴说了,为什么不把它改成下落101010的呢?那样的话不是像黑客帝国里的画面了码???
好吧,我们来把他实现
@echooff&modeconcols=42lines=20&color02 setlocalenabledelayedexpansion setcode=123456789abcdef setm=1&setv=1 title黑客帝国数码雨bybat-zw19750516 :begin set/aa=%random%%%2,b=%random%%%3 if%b%neq0(setb=%a%)else(set"b=") setstr=%str%%b% set/an+=1 if%n%lss40gotobegin set/am+=1,x+=1 if%m%geq20set/av+=1 setstr%m%=%str% cls&for/l%%iin(%m%,-1,%v%)doecho.!str%%i! if%x%equ20call:lp setstr=&setn=0 gotobegin :lp set/aa=%random%%%15,x=0 seta=!code:~%a%,1! color0%a%
当然上面的是高手写的,我们来看个新手简单完成的样子
@echooff title黑客帝国数码雨效果 color02 setlocalENABLEDELAYEDEXPANSION for/l%%iin(1,1,80)do( setDown%%i=0 ) :heike for/l%%jin(1,1,80)do( set/aguxing%%j-=1 if!guxing%%j!LSS0( set/ahanye%%j=!random!%%4 set/aguxing%%j=!random!%%15+10 ) if"!hanye%%j!"=="1"( set/ashu=!random!%%2 set/p=!shu!<NUL )else( set/p=<NUL ) ) gotoheike
是不是对这种特效有了新的认识了呢,是不是立刻就想精通批处理了呢,努力吧,小伙子们。