C++图形开发(4):下落的小球

文章介绍了如何使用C++和图形库创建小球自上而下依次出现、低配版下落以及高配版连续下落的动画。关键在于利用Sleep函数控制延迟,for或while循环控制小球的出现次数,以及cleardevice函数清除屏幕以模拟下落效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
	while (1) {
		a++;
		cleardevice();
		fillcircle(300, a, 20);
		Sleep(10);
	}
	_getch();
	closegraph();
	}

效果:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值