中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 动画特效:画圆、弹球、进度条、起落等
作者:
标题: 动画特效:画圆、弹球、进度条、起落等 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『楼 主』:  动画特效:画圆、弹球、进度条、起落等

很想研究下能不能做成圆 ……头晕
@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 操作:[2008-12-17]在帖子标题中增加搜索关键字;代码加code标签 说明:原标题"玩些小特效"不利于论坛搜索 处罚:原创内容本应予以积分奖励,现免除奖励,并惩罚性扣除2点积分 提示:建议阅读以下帖子 {1415}提问的智慧 {7326}论坛新手必读,所有人的基本行为准则 {22703}请不要做浮躁的人 {32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧 {32825}本版严厉整顿烂帖 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-12-17 at 22:13 ]


   此帖被 -1 点积分    点击查看详情   
评分人:【 HAT 分数: -2  时间:2008-12-17 22:14
评分人:【 Helloworld 分数: +1  时间:2008-12-18 20:11




2008-8-10 10:58
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 2 楼』:  

呵呵,想法很好玩呀。试着写了一个。大家看看可以不。 忘记加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 发表于 [url]http://www.cn-dos.net/forum[/url] ,转载请注明.
pause>nul
[ Last edited by flyinspace on 2008-8-10 at 02:15 PM ]


   此帖被 +8 点积分        点击查看详情   
评分人:【 523066680 分数: +8  时间:2008-8-10 16:23




知,不觉多。不知,乃求知
2008-8-10 13:49
查看资料  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 3 楼』:  最后效果如图

11111


附件 1: 1.JPG (2008-8-10 13:52, 50.22 KiB, 下载附件所需积分 1 点 ,下载次数: 1)




知,不觉多。不知,乃求知
2008-8-10 13:52
查看资料  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 4 楼』:  

你太帅B啦~~!!!!加分!




2008-8-10 16:22
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 5 楼』:  详细版的进度条

这个帖子就用拉发效果好了
@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


   此帖被 +2 点积分    点击查看详情   
评分人:【 cnmagician 分数: +2  时间:2009-3-17 09:14




2008-12-13 11:30
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 6 楼』:  做弹球意料之外的效果

@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




2008-12-13 11:31
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 7 楼』:  起 和 落

@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




2008-12-13 11:32
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
winxos
新手上路





积分 3
发帖 3
注册 2007-10-20
状态 离线
『第 8 楼』:  太帅气了

楼主真有创意。


2008-12-17 22:02
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 9 楼』:  

这些 小 特效来的,不适合发一个新帖,所以用追老帖的形式发




2008-12-18 10:41
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 10 楼』:  

特效我是不会写,只能特前来欣赏一下。^_^




┌───────┐ ├→学习→实践→┤ └───────┘
2008-12-18 11:58
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 11 楼』:  

可以做一个批处理等效合集的电子书了




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-12-18 12:52
查看资料  发短消息  网志   编辑帖子  回复  引用回复
stldzx
新手上路





积分 5
发帖 3
注册 2008-8-25
状态 离线
『第 12 楼』:  

呵呵,楼主太帅啦


2009-1-26 20:06
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 13 楼』:  cols=lines*lines 曲线

@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 ]




2009-3-8 04:06
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
rootkit
初级用户





积分 63
发帖 32
注册 2007-12-21
状态 离线
『第 14 楼』:  cmd promt of exploring this topic

汗,我现在在命令行下阅读这个贴子,正在测试下。呵呵 不知道怎么看,现在就用EDIT这个命令来回复主题。


2009-3-8 04:59
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 15 楼』:  顺时针画框

哇 也想试试 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="输入高[2-23]: "
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


   此帖被 +8 点积分        点击查看详情   
评分人:【 netbenton 分数: +8  时间:2009-3-15 05:11




2009-3-15 01:15
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: