C++的极简字符动画创作

C++的极简字符动画创作,第1张

一、本期使用的代码概要

1.头文件:

#include

2.清屏指令:

system("cls")

3.等待指令:

Sleep()

4.[优化项]改变控制台颜色:

system("color ")
二、原理分析

动画即在肉眼难以分辨的时间内通过不断刷新屏幕的方式给人以动态的错觉,我们也可以以这种方式使控制台不断清屏,然后再显示一个外观与前者相似的图片(字符)来实现动画。

三、正片开始

首先,要用到标准输入输出流和一些《神奇的》 *** 作(后面会解释):

#include//cin,cout流
#include//神秘代码变得不神秘了

然后输出:

#include
#include
using namespace std;//标准命名空间
int main(){
    cout<<"e";
}

清屏:

#include
#include
using namespace std;
int main(){
    cout<<"e";
    system("cls");//看到“system”有没有人能猜到怎么回事呢?
}

再输出,循环往复:

#include
#include
using namespace std;
int main(){
    cout<<"e";
    system("cls");
    cout<<" e";
    system("cls");
    cout<<"  e";
    system("cls");
    cout<<"   e";
    system("cls");
    cout<<"    e";
    system("cls");
    cout<<"     e";
    system("cls");
}

for循环遍历一下:

#include
#include
using namespace std;
int main(){
    for(int i=1;i<=100;i++){
    	for(int j=1;j<=i-1;j++){
    		cout<<' ';
		}
		cout<<'e';
		system("cls");
	}
}

可是执行后有了点《小》问题:动画近乎在一瞬间放完了。

想了想,原因是帧数太高了。那么就要想办法使每打印一个字符,等待一段时间:于是Sleep()隆重登场!在括号里输入一个数字,控制台会等待相应的毫秒数不执行任何其他指令。

#include
#include
using namespace std;
int main(){
    for(int i=1;i<=100;i++){
    	for(int j=1;j<=i-1;j++){
    		cout<<' ';
		}
		cout<<'e';
		Sleep(70);//括号中数字单位是毫秒 
		system("cls");
	}
    return 0;
}

完整代码 ↑

用此方法制作出的动画有些……那啥(你懂的),但这个原理不是只能做动画啊!

例如打字机样式的“FBI WARNING”,你值得拥有!

上代码:

#include
#include
#include
using namespace std;
void out_70ms(string& s_out_70ms) {//自定义函数
	int l1 = s_out_70ms.size();
	for (int i = 0; i < l1; i++) {
		cout << s_out_70ms[i];
		Sleep(70);
	}
	Sleep(1000);
	cout << endl;
}
int main() {
	string s1 = "FBI WARNING!!!";
	while("yee"=="yee"&&"(bushi"=="(bushi"){
        out_70ms(s1);
    }
}

以此类推,打字机样式的千字论文有了[Doge]

觉得黑白底没意思?想换控制台颜色?

满足你的需求!

上代码!

#include
#include
#include
#include
using namespace std;
void out_70ms(string& s_out_70ms) {//自定义函数
	int l1 = s_out_70ms.size();
	for (int i = 0; i < l1; i++) {
		cout << s_out_70ms[i];
		Sleep(70);
	}
	Sleep(1000);
	cout << endl;
}
int main() {
	system("color 47"); 
	string s1 = "FBI WARNING!!!";
	while("yee"=="yee"&&"(bushi"=="(bushi"){
        out_70ms(s1);
    }
    return 0;
}

到这里,其实大家不难发现,这就是cmd中的指令。只需在源代码中输入“system("")”即可。

颜色代码(前面是底色,后面是字体颜色):

清屏:

 不得不说,C++是真的强大,竟然涵盖了Windows的语言。小编记得“Sleep”就是Microsoft Visual Basic Script Edition中的“延时”语句。

不管怎么说,给个三连吧~

下期C++实现随机取数再见ヾ(•ω•`)o

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1325186.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-12
下一篇2022-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存