如何使用 C# 在 Windows 控制台应用程序中创建 ASCII 动画?
我希望它能够显示非闪烁的动画,就像这个很棒的 Linux 命令一样; sl
http://www.youtube.com/watch?v=9GyMZKWjcYU
我会很感激一个小&愚蠢的例子是……一只苍蝇。
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需使用
Console.SetCursorPosition
将光标移动到某个位置,然后Console.Write
一个字符。在每一帧之前,您必须通过用空格覆盖前一帧来删除它。这是我刚刚构建的一个小例子:例如,您可以拍摄一个动画 gif,从中提取所有单帧/图像(请参阅如何执行此操作 此处),应用 ASCII 转换(如何执行此操作,请参见 这里)并像上面的代码示例一样逐帧打印这些内容。
更新
只是为了好玩,我实现了我刚才描述的内容。只需尝试将
@"C:\some_animated_gif.gif"
替换为某些(不是很大的)动画 gif 的路径即可。例如,从此处获取 AJAX 加载程序 gif。Just use
Console.SetCursorPosition
for moving the cursor to a certain position, thenConsole.Write
a character. Before each frame you have to delete the previous one by overwriting it with spaces. Heres a little example I just built:You could for instance take an animated gif, extract all single frames/images from it (see how to do that here), apply an ASCII transformation (how to do that is described here for example) and print these frame by frame like in the above code example.
Update
Just for fun, I implemented what I just described. Just try it out replacing
@"C:\some_animated_gif.gif"
with the path to some (not to large) animated gif. For example take an AJAX loader gif from here.只是为了好玩:
Just for fun :