Board logo

标题: [特效]数字阵逐点显现,随机 [打印本页]

作者: 523066680     时间: 2009-1-27 20:54    标题: [特效]数字阵逐点显现,随机

大家还记得08奥运会 开始典礼的视觉震撼吧!
这个帖子讨论 那个击缶的倒计时,数字阵一点点显现的效果。

     并不要求全一样,可以逐步实现。
     全凭兴趣回帖,觉得好的大家给分,一起挑战吧。

[ Last edited by 523066680 on 2009-3-14 at 22:18 ]
作者: wxcute     时间: 2009-1-27 21:55    标题: [论坛的时间怎么有点不对阿,现在 20:42 ]

用你的点阵代码一个个字来画 ^_^
作者: 523066680     时间: 2009-1-27 22:36
体力活没人干耶……   待。。。。。。
作者: 523066680     时间: 2009-1-30 16:28
算了算了 娱乐一下   累也值得 很粗糙的做了一个 别骂哦
@echo off &setlocal enabledelayedexpansion
title CodeBy523066680
for /l %%x in (5,-1,1) do (
for /f "delims== tokens=1" %%a in ('set') do (set %%a=)
set "k=                    "
for /l %%a in (1,1,15) do (set l%%a=!k!)
for /f "delims=x" %%a in (%~snx0) do (
  if "%%a"==":%%xend" (set "yes=")
  if defined yes (set /a "n+=1" &set S!n!=%%a)
  if "%%a"==":%%x" (set /a yes=1,n=0)
)
for /l %%a in (1,1,12) do (
   for /l %%b in (0,1,15) do (
   if "!S%%a:~%%b,1!"=="*" (set x_!random!_%%a_%%b_x=x)
   )
)
for /f "delims=_ tokens=3,4" %%a in ('set x_') do (
   set /a x=%%b+1
   call set l%%a=!l%%a:~0,%%b!*%%l%%a:~!x!%%
   call :a 50
   cls
   for /l %%a in (1,1,15) do (echo,!l%%a!)
)
call :a 500
)
pause
exit

:a
for /l %%a in (1,1,%1) do (echo,>nul)
goto :eof
:5
***************
***************
***
***
***
***************
***************
            ***
            ***
            ***
***************
***************
:5end
:4
***         ***
***         ***
***         ***
***         ***
***         ***
***************
***************
            ***
            ***
            ***
            ***
            ***
:4end
:3
***************
***************
            ***
            ***
            ***
***************
***************
            ***
            ***
            ***
***************
***************
:3end
:2
***************
***************
            ***
            ***
            ***
***************
***************
***
***
***
***************
***************
:2end
:1
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
      ***
:1end
[ Last edited by 523066680 on 2009-1-30 at 20:58 ]
作者: 523066680     时间: 2009-10-28 21:25
顶自己的老贴,事实上根某个已经发的帖子有重复成分
作者: Evangel     时间: 2009-10-31 15:23
很有激情的兄弟……总是有些创意的东西发出来
作者: 523066680     时间: 2009-10-31 22:58
再刷一个效果
@echo off
title made by 523066680 2008-08-08
::这一版本由www.cn-dos.net & www.bathome.cn 成员523066680编辑
setlocal enabledelayedexpansion
set fu= ^/ ^\
set "kong=                                                                            "
set "kong2=____________________________________________________________________________"
set /a a=0,b=0,e=2,tiao=0
:a
set /a b+=1,c=30-%b%+%e%
cls
echo,  仁有三急……狂奔厕所中……¥#……
for /l %%a in (1,1,6) do echo,
echo,!kong:~0,%b%!_ @
echo,!kong:~0,%b%! ^/
echo,!kong2:~0,%b%!!fu:~%a%,2!!kong2:~0,%c%!
ping -n>nul
if %a% equ 4 (set /a a=0) else (set /a a+=1)
if %a% leq 2 (set e=2)
if %a% equ 3 (set e=3)
if %a% equ 4 (set e=4)
if not %b% equ 30 goto :a else goto :b
set /a b=30,j=0,k=6
:b
if not %j% equ 6 (set /a j+=1,tiao=%j%) else (set /a k-=1,tiao=%k%)
set /a b+=1,up=6-%tiao%
cls
for /l %%a in (1,1,%up%) do echo,
echo,!kong:~0,%b%!  @/    偶跳
echo,!kong:~0,%b%!^<^/
echo,!kong:~0,%b%!!/^>   
for /l %%a in (1,1,%tiao%) do echo,
echo,!kong2:~0,30!
ping -n>nul&ping -n>nul
if %a% equ 4 (set /a a=0) else (set /a a+=1)
if %k%==0 (goto :c1) else (goto :b)

:c1
set /a cc=0,dd=0
set call1=非礼勿视......
:c
if not %tiao% equ 10 set /a tiao+=1
if not %b% equ 60 set /a b+=1
if not "%cc%" == "31" (set /a cc+=1,num=30-%cc%)
if "%cc%"=="31" if not "%dd%"=="31" set /a dd+=1
cls
for /l %%a in (1,1,9) do echo,
echo,!kong2:~0,%num%!
for /l %%a in (1,1,%tiao%) do echo,
if %tiao% equ 10 echo,!kong:~0,%b%!!call1:~0,%dd%!
echo,!kong:~0,%b%!_ @   
echo,!kong:~0,%b%! ^/\  
echo,!kong:~0,%b%!!fu:~%a%,2!
if %tiao% lss 10 (ping -n>nul&ping -n>nul&ping -n>nul) else (ping -n>nul)
if %a% equ 4 (set /a a=0) else (set /a a+=1)
if "%dd%"=="30" (ping -n 2 127.1>nul &exit) else (goto :c)

作者: BeeButterflyDos     时间: 2009-11-17 01:14
楼主,你好!

      我是一个批处理的初学者,你的这段代码很有意思。我仔细研究了一下,但是还有一个地方不是很懂,望赐教,不胜感激。也希望看到这个问题的大虾们帮忙解答一下。

for /f "delims=_ tokens=3,4" %%a in ('set x_') do (
   set /a x=%%b+1
   call set l%%a=!l%%a:~0,%%b!*%%l%%a:~!x!%%
   call :a 50
   cls

     在上面的代码中('set x_')起到什么作用呢?不是很理解。
作者: 523066680     时间: 2009-11-17 13:37
直接set  将列出所有现有变量
    set a 将列出所有a开头的现有变量 ,列出的时候变量是按名字先后排好的。

随机描点:
开始我读取自身,并把星号字符的坐标读取,赋给变量:x_随机数
一个个读取的时候,点是有顺序的读取的,当我再次用set x_ 列出所有x_开头
的变量的时候,把x_后的随机数给从头到尾排列了,导致顺序打乱
于是就等于乱序描出这些点,达到渐显的效果。
作者: BeeButterflyDos     时间: 2009-11-18 16:02
受益匪浅,谢谢楼主
作者: heixing     时间: 2009-12-30 23:16
蛮好看的,不错不错,学习
作者: qinchun36     时间: 2009-12-31 10:13
啊啊啊,始终对DOS的“图像”不感冒,看着真费劲,有时间再好好研究,这两个例子都很好哇,先收藏了。
作者: sl543001     时间: 2010-1-8 11:10
有时间一起研究一下!
作者: jarry0932     时间: 2010-1-10 14:18
4楼兄弟的效果真不错~
作者: gudou     时间: 2011-1-4 12:02
太棒了!!但是那个54321倒数的在Visual Bat环境中居然运行错误,幸好我另存为后又试了下,真是极品!
作者: 19900313     时间: 2011-1-5 18:20
好强啊