主要内容 #
1. 动画是怎么实现的 #

我们看到的视频/动画,其实是由一张张图像组成的。
当人看到两张相似的图像快速滑动时,会觉得图片没有动,而是图片上的人物动作发生了改变。这被称为“视觉暂留”。


基于这样的原理,我们就可以用C++来实现一个简单的“字符动画”。
只要按照这样的逻辑设计程序,应该就可以了吧。

不过,我们还没不知道怎么
2. 清除屏幕 #
这里需要使用一些系统函数,请看代码。
#include < iostream >
#include < Windows.h >
int main()
{
std::cout << "aaaaaaaaddfdfdfdfdfs4ds5f4s64dfs5df" << std::endl;
std::cout << "aaaaaaaaddfdfdfdfdfs4ds5f4s64dfs5df" << std::endl;
std::cout << "aaaaaaaaddfdfdfdfdfs4ds5f4s64dfs5df" << std::endl;
system(“cls”);//清除屏幕
return 0;
}
屏幕上什么输出都没有,这就是system(“cls”)起了作用,将cout的内容全部清除了。
3. 延时 #
这里需要使用一些系统函数,请看代码。
#include < iostream >
#include < Windows.h >
int main()
{
for(int i=0; i < 50; ++i)
{
std::cout << "aaaaaaaaddfdfdfdff" << std::endl;
Sleep(200); // 延时 200 毫秒,也就是0.2秒
system("cls");
Sleep(200); // 延时 200 毫秒,也就是0.2秒
}
return 0;
}
屏幕上的输出开始闪烁,这就是Sleep()起了作用。
4. 开始做 #
请参考上述代码,显示下面的字符画,并循环闪烁 50 次。延时为 100 毫秒。

/*
请练习后,查看示例代码。
*/
示例代码:
#include < iostream >
#include < Windows.h >
int main()
{
char str_H[] = {
' ','*',' ',' ',' ',' ','*',' ', // 0
' ','*',' ',' ',' ',' ','*',' ', // 1
' ','*',' ',' ',' ',' ','*',' ', // 2
' ','*','*','*','*','*','*',' ', // 3
' ','*',' ',' ',' ',' ','*',' ', // 4
' ','*',' ',' ',' ',' ','*',' ', // 5
' ','*',' ',' ',' ',' ','*',' ', // 6
};
// 3. 循环显示 50次
for(int i=0; i < 50; i++)
{
// 1. 显示字符画
for(int y=0; y < 7; y++)
{
for(int x=0; x < 8; x++)
std::cout << str_H[x + y*8];
std::cout << std::endl;
}
Sleep(100);
// 2. 清除屏幕
system("cls");
Sleep(100);
}
return 0;
}
习题 #