如何从批处理文件动画中删除闪烁? [英] How do I remove flickering from a batch file animation?

查看:28
本文介绍了如何从批处理文件动画中删除闪烁?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在批量制作一个假图形用户界面,作为我正在做的一篇YouTube评论的结束语。它基本上是一堆框画字符和文本,有点像80年代的单色终端。不管怎么说,程序里有一些动画,当我转到下一阶段没有动画的部分时,它们会不停地闪烁,并短暂地闪烁。我设置框架的方式是,嗯,只是用框画字符和文本编写的GUI,形成整个屏幕。动画的设置是在一帧之后,使用"ping localhost"作为计时器,然后是"cls",然后是下一帧,依此类推。我认为"CLS"是导致所有闪烁的原因。通常情况下,我会接受闪烁,因为我相信它会增加80年代以外的东西的感觉,然而,由于我计划在YouTube视频中使用这一点,让全世界都看到,我不想可能成为某人癫痫发作的原因。有没有其他方法可以消除闪烁,或者有其他方法来设置动画,这样闪烁就不会发生?我已经完成了整个程序,我不想把它全部扔掉。其他信息是,我使用的是Windows 10,并使用Notepad++制作了这个东西。

推荐答案

详细说明SomethingDark的评论-

仅Windows 10支持虚拟终端代码

可以通过解析提示符$E命令来定义转义控制字符。一种方法是:

 for /F "delims=#" %%a in ('"prompt #$E# & for %%a in (1) do rem"') do set "E=%%a"

另一种更简单的方法是:

 for /F %%a in ('Echo prompt $E ^|cmd') do set "E=%%a"

支持绝大多数序列的described here

Type命令还支持虚拟终端代码,通过将更改的单元格输出到文件,然后将该文件键入屏幕,从而实现高效的屏幕更新。
注意:使用带有UTF-8代码页字符的类型时可能会出现问题,即使设置了正确的代码页也是如此-为避免这些问题,EXPLICITY将TYPE FILE命令重定向到Con。IE:

Type "filename.ext" > Con

定义转义字符%E%后,可以使用以下命令取消控制台光标:

<nul set /P "=%E%[?25l"

并通过以下方式启用:

<nul Set /P "=%E%[?25h"

可以使用以下命令清除单个单元格:

rem /* for current cell location */
<nul Set /P "=%E%[1X"
rem /* for a cell located at substituted y x coordinate value */
<nul Set /P "=%E%[y;xH%E%[1X"

可以在this answer

找到生成帧速率一致的无闪烁动画的示例脚本

这篇关于如何从批处理文件动画中删除闪烁?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆