主要内容 #
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; }
习题 #