只是一个简单的问题。我试图在C中为一个程序制作一个简单的动画,但我找不到通过控制台移动这个对象的方法。 我正在使用printf在控制台上绘制图形,我正在考虑使用gotoxy函数使其移动,但这似乎并没有移动对象。 这就是数字:
printf(" / \\");
printf(" // \\\\");
printf(" // \\\\");
printf(" // \\\\");
printf(" || ||");
printf("=======|| [ ] ||=======");
printf("\\\\ || [ ] || //");
printf(" \\\\====|| [ ] ||====//");
printf(" +++++++++");
printf(" // | | | | | \\\\");
我想要的是,当我选择动画的选项时,火箭需要像它一样上升。我做了一个for循环更改Y值,但它没有工作。有什么想法吗?
答案 0 :(得分:2)
在使用MSVC的Windows中,您可以这样做,避免操作系统交互。它基于打印换行符将所有文本移动的想法。假设控制台中有25行。我希望Linux解决方案非常相似。
#include <windows.h>
#include <stdio.h>
#define LINES 25
int main(void) {
for(int i = 0; i < LINES; i++) { // clear console
printf("\n");
}
printf(" / \\\n"); // added newline to each of these lines
printf(" // \\\\\n");
printf(" // \\\\\n");
printf(" // \\\\\n");
printf(" || ||\n");
printf("=======|| [ ] ||=======\n");
printf("\\\\ || [ ] || //\n");
printf(" \\\\====|| [ ] ||====//\n");
printf(" +++++++++\n");
printf(" // | | | | | \\\\\n");
Sleep(3000); // start the burn
for(int i = 0; i < LINES; i++) {
Sleep(200);
printf("\n"); // lift-off
}
return 0;
}
答案 1 :(得分:0)
你应该使用clear screen选项,并在下次重新绘制另一个条件。
如何在C中清除屏幕取决于您使用的编译器。如果你使用c ++使用
multiprocessing.Lock
否则查找this article