标题: [特效代码] 批处理类JS楼梯动画效果 [打印本页]
作者: youxi01 时间: 2008-1-2 00:27 标题: 批处理类JS楼梯动画效果
用批处理实现 类js 下楼梯动画效果:
就是字符先从左走到右,走到尽头,下落一行,然后在从右走到左,到尽头再下落...
附:字符移动速度不要太慢...
作者: foxJL 时间: 2008-1-2 01:09
- @echo off&setlocal enabledelayedexpansion
- for /l %%n in (1,1,10) do (
- if !flag! equ 1 (set "a=77,-1,1") else (set "a=1,1,77")
- for /l %%i in (!a!) do (
- call :blank %%i
- set/p=f <nul
- call :back
- )
- call :back & call :blank 79
- echo.& set /a flag=%%n %% 2
- )
- pause>nul&exit
- :back
- for /l %%k in (1 1 79) do (set/p=<nul)
- goto :eof
- :blank
- for /l %%k in (1 1 %1) do (set/p= <nul)
- goto :eof
复制代码
[ 本帖最后由 foxJL 于 2008-1-3 00:56 编辑 ]
作者: 随风 时间: 2008-1-2 03:07
和那个字符左右移动差不多
:- @echo off
- set /a max=1,lis=0
- setlocal enabledelayedexpansion
- :loop
- if !max! equ 1 (set sis=^>) else set sis=!sis:~0,-1!^<
- for /l %%a in (1 1 78) do (
- set /p=!sis!<nul
- for /l %%i in (1 1 100) do ver>nul
- if !max! neq 1 (set sis=!sis:~1!) else set "sis= !sis!"
- for /l %%i in (1 1 80) do set /p=<nul
- )
- if !max! equ 1 (set /p= <nul) else for /l %%i in (1 1 80) do set /p= <nul
- set max=%lis%&set lis=%max%
- goto loop
复制代码
作者: ieutk 时间: 2008-1-2 03:09
这个是更新的版本- @echo off&setlocal enabledelayedexpansion
- mode con: cols=72 lines=21&color c
- for /l %%a in (1 1 69) do set "space= !space!"
- set "test=%space% a %space%"
- for /l %%a in (1 1 72) do set "t=!t!"
- for /l %%a in (1 1 10) do (
- for /l %%i in (70 -1 0) do call :ie %%i
- echo.
- for /l %%j in (1 1 71) do call :ie %%j
- echo.
- )
- pause>nul&goto :eof
-
- :ie
- set/p= !test:~%1,70!<nul
- set/p=%t%<nul
- for /l %%m in (1 1 200) do ver>nul
- goto :eof
复制代码
[ 本帖最后由 ieutk 于 2008-1-2 16:39 编辑 ]
作者: 随风 时间: 2008-1-2 03:17 标题: 回复 2# 的帖子
- set/p=f<nul&set/p= <nul
- set/p=f <nul
复制代码
作者: youxi01 时间: 2008-1-2 09:35 标题: 回复 4# 的帖子
你把最后一个字符(最开始一个字符)用空格来代替就行了
作者: youxi01 时间: 2008-1-2 09:50
哈哈,我原来还在查 随风 和foxjl的代码中实现 换行的代码
后来经过测试才知道,原来是自动换行...
作者: youxi01 时间: 2008-1-2 10:38
自己也来贴一段啊,呵呵.
习惯了写“函数”(标签),所以程序代码都是 以“函数”的形式出现;
缺点:因为要调用参数,所以无法象 随风 的代码一样可以出现特殊字符;
优点:添加了换行,类4F,可以在随机位置换行(没技术可言...)- ::code by youxi01@bbs.bathome.net,2008-1-2
- @echo off
- set /a flag=1,a=2 %========定义标志文件=========%
- :loop
- set flag=%a% & set a=%flag% %==========每循环一次就交换数据=========%
- Rem 当flag变量的值为2时,就向坐移动;反之向右。
- if %flag% EQU 2 (call :Ani " F") else (
- for /l %%i in (1 1 78) do set /p= <nul
- call :Ani "F ")
- goto :loop
- pause>nul
- :Ani 参数
- Rem 第一个for循环中的数字随自己的需要更改;
- for /l %%i in (1 1 60) do (
- set /p=%~1<nul
- for /l %%j in (1 1 200) do ver>nul)
- set /p= <nul
- echo.
复制代码
作者: ieutk 时间: 2008-1-2 16:26
你把最后一个字符(最开始一个字符)用空格来代替就行了
多谢指教,捣鼓了半天,终于搞好了,现在代码己在4楼更新
作者: foxJL 时间: 2008-1-3 00:56 标题: 回复 5# 的帖子
多谢指点,可能写的时候只故着调试,这些都忘了.
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |