中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-15 13:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 动画特效:画圆、弹球、进度条、起落等 查看 7,756 回复 30
楼 主 动画特效:画圆、弹球、进度条、起落等 发表于 2008-08-10 10:58 ·  中国 广东 广州 天河区 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
很想研究下能不能做成圆 ……头晕
@echo off
setlocal enabledelayedexpansion
set "kong= "
set h= o
for /l %%a in (1,1,10) do (
ping -n>nul &ping -n>nul
set h=!h: = !
echo !h!
)
for /l %%a in (1,1,9) do (
ping -n>nul &ping -n>nul
set h=!h: = !
echo !h!
)
pause


───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"玩些小特效"不利于论坛搜索
处罚:原创内容本应予以积分奖励,现免除奖励,并惩罚性扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-12-17 at 22:13 ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
HAT -2 2008-12-17 22:14
Helloworld +1 2008-12-18 20:11
2 发表于 2008-08-10 13:49 ·  中国 广东 广州 番禺区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
呵呵,想法很好玩呀。试着写了一个。大家看看可以不。
忘记加code了现在补上

@echo off & setlocal EnableDelayedExpansion
mode con:cols=100 lines=100
echo.
echo 利用批处理绘制圆形,BETA 1.00 版。2008年8月10日编译完成。
echo.
echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
set "DrawPoint=○"
set "Radius=19"
set /a "Square=%Radius%*%Radius%"
set /a "Diameter=%Radius%*2"
set "Interval= "
set /a "y=%Diameter%"
set /a "x=0"
set /a "Area1=%Square%+10"
set /a "Area2=%Square%-10"
for /l %%i in (%Diameter%,-1,0) do Call :Draw_Point "%%i"
goto :End
:Draw_Point _y_
set "Line=┃"
for /l %%i in (0,1,%Diameter%) do (
call :Compute_Deuce_Length "%%i" "%1"
call :Draw_Line "!CResult!"
)
echo %Line%┃
goto :EOF
:Draw_Line _rst_
set "res=%~1"
if '%res% LSS %Area2%' (
set "Line=%Line%%Interval%"
goto :EOF
)
if '%res% GTR %Area1%' (
set "Line=%Line%%Interval%"
goto :EOF
)
set "Line=%Line%%DrawPoint%"
goto :EOF
:Compute_Deuce_Length _x_ _y_
set "Cx=%~1"
set "Cy=%~2"
if "%Cx%" LEQ "%Radius%" (
set /a "Factor1=%Radius%-%Cx%"
) else (
set /a "Factor1=%Cx%-%Radius%"
)
if "%Cy%" LEQ "%Radius%" (
set /a "Factor2=%Radius%-%Cy%"
) else (
set /a "Factor2=%Cy%-%Radius%"
)
set /a "Factor1=%Factor1%*%Factor1%"
set /a "Factor2=%Factor2%*%Factor2%"
set /a "CResult=%Factor1%+%Factor2%"
goto :EOF
:End
echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
echo.
echo 本演示由 Flyinspace 发表于 http://www.cn-dos.net/forum ,转载请注明.
pause>nul


[ Last edited by flyinspace on 2008-8-10 at 02:15 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
523066680 +8 2008-08-10 16:23
知,不觉多。不知,乃求知
3 最后效果如图 发表于 2008-08-10 13:52 ·  中国 广东 广州 番禺区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
11111
附件
1.JPG
知,不觉多。不知,乃求知
4 发表于 2008-08-10 16:22 ·  中国 广东 广州 天河区 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
你太帅B啦~~!!!!加分!
5 详细版的进度条 发表于 2008-12-13 11:30 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
这个帖子就用拉发效果好了

@echo off&setlocal enabledelayedexpansion&mode con cols=25 lines=1
title 进度条
set /a a=0
:a
set /a a+=1
for %%a in (▏ ▎ ▍ ▌ ▋ ▊ ▉) do (set /p=%%a<nul &ping -n 1 127.1>nul &ping -n 1 127.1>nul &ping -n 1 127.1>nul &set /p=   <nul)
set /p=█<nul
if %a% lss 10 (goto :a)
set /p= End<nul&pause>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
cnmagician +2 2009-03-17 09:14
6 做弹球意料之外的效果 发表于 2008-12-13 11:31 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线

@echo off &setlocal enabledelayedexpansion
title made by hi.baidu.com/523066680
color 17 &mode con cols=60 lines=30
for /l %%a in (1,1,60) do (set space= !space!)
set /a La=14,Lb=30,Ca=29,Cb=59,r=5
:loop
if %La% lss 29 (set /a La+=2,line=La) else (set /a Lb-=2,line=Lb)
if %Lb% leq -1 (set /a La=-1,Lb=30,r=%random%%%3+2)

if %Ca% lss 58 (set /a Ca+=r,col=Ca) else (set /a Cb-=r,col=Cb)
if %Cb% leq 4 (set /a Ca=-1,Cb=59,r=%random%%%3+1)

for /l %%a in (1,1,%line%) do echo,
echo,!space:~0,%col%!●
ping -n 1 127.1>nul
goto :loop

7 起 和 落 发表于 2008-12-13 11:32 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
mode con cols=60 lines=30
for /l %%a in (1,1,60) do (set space= !space!)
for /l %%a in (1,1,15) do (set ls=%space%!ls!)
set String=%ls:~31%O

:loop
set /a a=0,b=0
:a
set /a a+=1
set String=!String:%space%O=O!
echo %String%
ping -n 1 127.0>nul
ping -n 1 127.0>nul
if %a% lss 20 goto :a

:b
set /a a-=1
set String=!String:O=%space%O!
echo %String%
ping -n 1 127.0>nul
ping -n 1 127.0>nul
if %a% gtr 0 goto :b
goto :loop
8 太帅气了 发表于 2008-12-17 22:02 ·  中国 四川 成都 电信
新手上路
积分 3
发帖 3
注册 2007-10-20 19:40
UID 100283
性别 男
状态 离线
楼主真有创意。
9 发表于 2008-12-18 10:41 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
这些 小 特效来的,不适合发一个新帖,所以用追老帖的形式发
10 发表于 2008-12-18 11:58 ·  中国 福建 三明 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
UID 59307
状态 离线
特效我是不会写,只能特前来欣赏一下。^_^
┌───────┐
├→学习→实践→┤
└───────┘
11 发表于 2008-12-18 12:52 ·  中国 北京 鹏博士长城宽带
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
UID 55770
状态 离线
可以做一个批处理等效合集的电子书了

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
12 发表于 2009-01-26 20:06 ·  中国 广东 广州 电信
新手上路
积分 5
发帖 3
注册 2008-08-25 17:41
UID 124126
性别 男
状态 离线
呵呵,楼主太帅啦
13 cols=lines*lines 曲线 发表于 2009-03-08 04:06 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
mode con cols=102 lines=25
for /l %%a in (1,1,100) do (set k= !k!)
for /l %%a in (-10,1,10) do (set h%%a=%k%)
set la=-11
:la
set /a la+=1,lb=la*la,tlb=100-lb
set h%la%=!h%la%:~%tlb%!.
ping -n 1 127.1>nul
cls
for /l %%a in (-10,1,10) do echo,!h%%a!
if %la% lss 10 goto :la
pause


[ Last edited by 523066680 on 2009-3-15 at 01:16 ]
14 cmd promt of exploring this topic 发表于 2009-03-08 04:59 ·  中国 北京 中移铁通
初级用户
积分 63
发帖 32
注册 2007-12-21 20:57
UID 106402
性别 男
状态 离线
汗,我现在在命令行下阅读这个贴子,正在测试下。呵呵
不知道怎么看,现在就用EDIT这个命令来回复主题。
15 顺时针画框 发表于 2009-03-15 01:15 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
哇 也想试试 cmd 下看帖的感觉.等下去看看

---------------------------正题----------------------------
http://bbs.bathome.cn/viewthread.php?tid=3537
18楼

@echo off &setlocal enabledelayedexpansion
for /l %%a in (1,1,79) do (set k= !k!)
for /l %%a in (1,1,23) do (set h%%a=%k%)
set /p inp="输入高: "
set /a c=0,h=1,i2=inp*2,na=40-inp
set stra=!k:~-%na%!
for %%a in ("c + %i2%" "h + %inp%" "c - 1" "h - 1") do (call :func %%~a)
pause>nul &exit
:func
set /a %1 %2 = 1,cf=c-1
set h%h%=!h%h%:~0,%cf%!.!h%h%:~%c%!
ping -n 1 127.1>nul &cls
for /l %%a in (1,1,%inp%) do (echo,%stra%!h%%a:~0,-%na%!)
if !%1! neq %3 goto :func

本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
netbenton +8 2009-03-15 05:11
论坛跳转: