返回列表 发帖
::黑客数码雨双向移动+左右文字滚动,逼真效果

@echo off&color 0a
if defined lins goto :sub
set "lins=  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23"
setlocal enabledelayedexpansion
start /b %~n0.bat
title 数码雨  By Benton 按任意键退出
set str=fedcbag h i j k l m n o p q r s t u v w x y z9876543210ABCDEFG H I J K L M N O P Q R S T U V W X Y Z
for %%i in (%lins%) do (
for /l %%j in (1,1,8) do (
  set "m%%i=!m%%i!          "
  set "n%%i=!n%%i!          "
)
)
set n=2
set m=0
set k=0
set "in0=。。。。——《《欢迎来到黑客帝国》》——。。。。。"
set "im0=看到美女了吗?看到了,说明你已是黑客帝国的了。。。"
::预处理结束
:::::::::::::::循环体:::::::::::::::
:loop
set var=  %%str:~!random:~0,2!,1%%
for /l %%i in (1,1,2) do (
call set "var=!var!  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%"
)
set/a n=^(n+23^)%%24,m=^(m+23^)%%24
set m%m%=!var!
set n%n%=!var!
set lins=!lins:~-3!!lins:~0,-3!
set tem=!n0!
for %%a in (a b) do (
for /l %%i in (23,-1,0) do (
set tem1=!n%%i!
set n%%i=!tem!
set tem=!tem1!))
set ll=0
for %%i in (%lins%) do (
set "l!ll!=!m%%i:~0,3!!n%%i:~0,3!!m%%i:~3,3!!n%%i:~3,3!!m%%i:~6,3!!n%%i:~6,3!!m%%i:~9,3!!n%%i:~9,3!!m%%i:~12,3!!n%%i:~12,3!!m%%i:~15,3!!n%%i:~15,3!!m%%i:~18,3!!n%%i:~18,3!!m%%i:~21,3!!n%%i:~21,3!!m%%i:~24,3!!n%%i:~24,3!!m%%i:~27,3!!n%%i:~27,3!!m%%i:~30,3!!n%%i:~30,3!!m%%i:~33,3!!n%%i:~33,3!!m%%i:~36,3!!n%%i:~36,3!  "
set/a ll+=1
)
for %%i in (0 4 8 12 16 20) do (if %m%==%%i set/a k=^(k+25^)%%26)
set in=!in0:~%k%!!in0:~0,%k%!
set im=!im0:~-%k%!!im0:~0,-%k%!
set l10=!l10:~0,25!!in:~0,15!!l10:~55!
set l12=!l12:~0,25!!im:~0,15!!l12:~55!
set len=!l0!!l1!!l2!!l3!!l4!!l5!!l6!!l7!!l8!!l9!!l10!!l11!!l12!!l13!!l14!!l15!!l16!!l17!!l18!!l19!!l20!!l21!!l22!!l23!
cls
echo !len:~0,1888!
for /l %%i in (1,1,300) do echo.>nul
goto loop
::::::::::::::::::::::::::::::::::::
::外部控制子过程
:sub
pause>nul
TASKKILL /FI "WINDOWTITLE ne 数码雨">nulCOPY

[ 本帖最后由 netbenton 于 2009-4-18 01:23 编辑 ]

TOP

for /l %%i in (1,1,1000) do echo.>nul
这句用来延时的,你把1000调小一点就可以了

我的机子速度太快了才用的。

==================

把最后的
pause>nul  改成 ping 127.1 -n 120 >nul

就可以运行2分钟后才退出了

[ 本帖最后由 netbenton 于 2009-4-17 23:28 编辑 ]

TOP

26楼退出时有点问题,再改一改

数码雨双向移动+字符串滚动+字符转动+标题字符串滚动+动态测帧+闪烁
@echo off&color 0a
if defined lins goto :sub
set "lins=  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23"
setlocal enabledelayedexpansion
start /b %~n0.bat
set str=fedcbag h i j k l m n o p q r s t u v w x y z9876543210ABCDEFG H I J K L M N O P Q R S T U V W X Y Z
for %%i in (%lins%) do (
        for /l %%j in (1,1,8) do (
                set "m%%i=!m%%i!          "
                set "n%%i=!n%%i!          "
        )
)
set n=1
set m=0
set k=0
set "im0=看到美女了吗?看到了,说明你已是黑客帝国的了。。。"
set mmz=%time:~6,2%
set "chan=/-\|"
::预处理结束
:::::::::::::::循环体:::::::::::::::
:loop
::增加的标题效果
set/a zza+=1
if not "%time:~6,2%"=="%mmz%" (
set/a zzm+=1,zz=zza/zzm&set mmz=%time:~6,2%
set "tit= Made by Benton !zz!帧/秒,按任意键退出 "
)
title @_@       [ !tit:~-%k%!!tit:~0,-%k%! ]
::增加的标题效果
set var=  %%str:~!random:~0,2!,1%%
for /l %%i in (1,1,2) do (
call set "var=!var!  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%"
)
set/a n=^(n+23^)%%24,m=^(m+23^)%%24
set m%m%=!var!
set n%n%=!var!
set lins=!lins:~-3!!lins:~0,-3!
for /l %%i in (0,1,23) do (set/a ll=%%i-2&set n!ll!=!n%%i!)
set n23=!n-1!
set n22=!n-2!
cls&color 0f&echo !len:~0,1888!
set ll=0
for %%i in (%lins%) do (
set "l!ll!=!m%%i:~0,3!!n%%i:~0,3!!m%%i:~3,3!!n%%i:~3,3!!m%%i:~6,3!!n%%i:~6,3!!m%%i:~9,3!!n%%i:~9,3!!m%%i:~12,3!!n%%i:~12,3!!m%%i:~15,3!!n%%i:~15,3!!m%%i:~18,3!!n%%i:~18,3!!m%%i:~21,3!!n%%i:~21,3!!m%%i:~24,3!!n%%i:~24,3!!m%%i:~27,3!!n%%i:~27,3!!m%%i:~30,3!!n%%i:~30,3!!m%%i:~33,3!!n%%i:~33,3!!m%%i:~36,3!!n%%i:~36,3!  "
set/a ll+=1)
::增加的中间效果
if "%chn%"=="3" set/a k=^(k+25^)%%26
set/a chn=^(chn+1^)%%4
set "in0=—《!chan:~%chn%,1!》欢迎来到黑客帝国《!chan:~-%chn%,1!》—"
        set im=!im0:~-%k%!!im0:~0,-%k%!
        set l10=!l10:~0,25!!in0:~%k%!!in0:~0,%k%!!l10:~55!
        set l12=!l12:~0,25!!im:~0,15!!l12:~55!
::增加的中间效果
cls&color 0a&echo !len:~0,1888!
::如果速度过快的话,在这里增加延时for /l %%i in (1,1,150) do cd..>nul
set len=!l0!!l1!!l2!!l3!!l4!!l5!!l6!!l7!!l8!!l9!!l10!!l11!!l12!!l13!!l14!!l15!!l16!!l17!!l18!!l19!!l20!!l21!!l22!!l23!
goto loop
::::::::::::::::::::::::::::::::::::
::外部控制子过程
:sub
pause>nul
TASKKILL /FI "IMAGENAME EQ cmd.exe" /FI "WINDOWTITLE EQ @_@ *">nulCOPY

[ 本帖最后由 netbenton 于 2009-5-6 22:39 编辑 ]
4

评分人数

TOP

你按Alt+Enter键,它就全屏了
要程序自动全屏也可以,不过,效果似乎并不是很好。

TOP

增加一对括号,竟然可以从28帧/秒,增加到34帧/秒
@echo off&color 0a
if defined lins goto :sub
set "lins=  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23"
setlocal enabledelayedexpansion
start /b %~n0.bat
set str=fedcbag h i j k l m n o p q r s t u v w x y z9876543210ABCDEFG H I J K L M N O P Q R S T U V W X Y Z
for %%i in (%lins%) do (
        for /l %%j in (1,1,8) do (
                set "m%%i=!m%%i!          "
                set "n%%i=!n%%i!          "
        )
)
set n=1
set m=0
set k=0
set "im0=看到美女了吗?看到了,说明你已是黑客帝国的了。。。"
set mmz=%time:~6,2%
set "chan=/-\|"
::预处理结束
:::::::::::::::循环体:::::::::::::::
:loop
::增加的标题效果
(set/a zza+=1
if not "%time:~6,2%"=="%mmz%" (
set/a zzm+=1,zz=zza/zzm&set mmz=%time:~6,2%
set "tit= Made by Benton !zz!帧/秒,按任意键退出 "
)
title @_@       [ !tit:~-%k%!!tit:~0,-%k%! ]
::增加的标题效果
set var=  %%str:~!random:~0,2!,1%%
for /l %%i in (1,1,2) do (
call set "var=!var!  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%  %%str:~!random:~0,2!,1%%"
)
set/a n=^(n+23^)%%24,m=^(m+23^)%%24
set m%m%=!var!
set n%n%=!var!
set lins=!lins:~-3!!lins:~0,-3!
for /l %%i in (0,1,23) do (set/a ll=%%i-2&set n!ll!=!n%%i!)
set n23=!n-1!
set n22=!n-2!
cls&color 0f&echo !len:~0,1888!
set ll=0
for %%i in (%lins%) do (
set "l!ll!=!m%%i:~0,3!!n%%i:~0,3!!m%%i:~3,3!!n%%i:~3,3!!m%%i:~6,3!!n%%i:~6,3!!m%%i:~9,3!!n%%i:~9,3!!m%%i:~12,3!!n%%i:~12,3!!m%%i:~15,3!!n%%i:~15,3!!m%%i:~18,3!!n%%i:~18,3!!m%%i:~21,3!!n%%i:~21,3!!m%%i:~24,3!!n%%i:~24,3!!m%%i:~27,3!!n%%i:~27,3!!m%%i:~30,3!!n%%i:~30,3!!m%%i:~33,3!!n%%i:~33,3!!m%%i:~36,3!!n%%i:~36,3!  "
set/a ll+=1)
::增加的中间效果
if "%chn%"=="3" set/a k=^(k+25^)%%26
set/a chn=^(chn+1^)%%4
set "in0=—《!chan:~%chn%,1!》欢迎来到黑客帝国《!chan:~-%chn%,1!》—"
        set im=!im0:~-%k%!!im0:~0,-%k%!
        set l10=!l10:~0,25!!in0:~%k%!!in0:~0,%k%!!l10:~55!
        set l12=!l12:~0,25!!im:~0,15!!l12:~55!
::增加的中间效果
cls&color 0a&echo !len:~0,1888!
::如果速度过快的话,在这里增加延时for /l %%i in (1,1,150) do cd..>nul
set len=!l0!!l1!!l2!!l3!!l4!!l5!!l6!!l7!!l8!!l9!!l10!!l11!!l12!!l13!!l14!!l15!!l16!!l17!!l18!!l19!!l20!!l21!!l22!!l23!
goto loop)
::::::::::::::::::::::::::::::::::::
::外部控制子过程
:sub
pause>nul
TASKKILL /FI "IMAGENAME EQ cmd.exe" /FI "WINDOWTITLE EQ @_@ *">nulCOPY
1

评分人数

TOP

在10日没修改前我开过了,界面并没有很特别,就是增加了下载mp3文件,作为背景播放

TOP

回复 79# wosliming


《!chan:~%chn%,1!》这里实现取变量中的一个字符,只要改变 %chn%的值,即可: set /a "chn= (chn + 1) %% 4"

TOP

返回列表