文章目录
- 1.小球自上而下依次出现
- 2.下落的小球低配版
- 3.下落的小球高配版
1.小球自上而下依次出现
首先,我们来使小球自上而下依次出现:
分析:要使小球自上而下依次出现,也就是指在一个小球出现之后让程序暂停一段时间,再执行下一步操作。
这就需要用到Sleep()函数了
Sleep()函数的作用是使当前线程暂停执行一段时间,让出CPU给其他线程或进程使用,以达到节约资源的目的。在调用Sleep()函数时,传入的参数表示线程需要暂停的时间(单位为毫秒),当时间结束后,线程会被自动唤醒,继续执行下一条语句。Sleep()函数通常用于控制程序执行速度、实现定时任务等场景。
其格式为:
Sleep(时间);//时间单位为毫秒(1000ms=1s)
接着,我们把坐标图画出来:
综上可得,画一个小球并执行等待命令的代码如下:
fillcircle(30,100,20);
Sleep(1000);
那么要画五个小球,我们就可以使用一个for循环来实现:(关于for循环详见:C++爱好者的自我修养(7):for循环语句)
int a = 100;
for(int i=0;i<=5;i++){
fillcircle(300, a, 20);//此处的a用于确定不同小球的y轴坐标
Sleep(1000);
a = a + 100;
}
整个代码就是:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main(){
int a = 100;
initgraph(600, 600);
for(int i=0;i<5;i++){
fillcircle(300, a, 20);
Sleep(1000);
a = a + 100;
}
_getch();
closegraph();
}
为方便调整,也可以写成:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main(){
int a = 100;
int step = 100;
initgraph(600, 600);
for(int i=0;i<5;i++){
fillcircle(300, a, 20);
Sleep(1000);
a = a + step;
}
_getch();
closegraph();
}
效果:
2.下落的小球低配版
在刚才我们已经成功制作了 一个让小球自上而下出现的动画,那么我们就只需要再配合上cleardevice()清屏函数来实现清屏的效果,从而得到一个下落的小球:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main(){
int a = 100;
int step = 100;
initgraph(600, 600);
for(int i=0;i<5;i++){
cleardevice();
fillcircle(300, a, 20);
Sleep(1000);
a = a + step;
}
_getch();
closegraph();
}
效果:
3.下落的小球高配版
如果要实现更真实的小球下落呢?
我们就可以用while语句来营造一个死循环:(关于while语句详见:C++爱好者的自我修养(3):while循环语句以及while循环语句中break语句与continue语句的使用)
int a = 50;
while(1){
a ++;//++是自增运算符,相当于a = a + 1;
cleardevice();
fillcircle(300,a,20);
Sleep(10);
}
整段代码就是:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
int main(){
int a = 50;
initgraph(600, 600);
Sleep(5000);
while (1) {
a++;
cleardevice();
fillcircle(300, a, 20);
Sleep(10);
}
_getch();
closegraph();
}
效果: