栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(详细)星空动态特效(基于C语言+EasyX库实现)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(详细)星空动态特效(基于C语言+EasyX库实现)

写在前面(必读)

         1.编译环境为:

                     Visual C++ 6.0、Visual Studio 2010 ~ Visual Studio 2022 都可以使用。

        2.使用了“EasyX”图形库,务必安装才可以实现哦。

        (如果没有安装包,评论区留言备注发送哦)

代码实现
//导入头文件
#include
#include
#include 
#include 
#include
#define MAXSTAR 200	//宏定义常量,星星个数
#define WIDTH 700 //窗口宽度
#define HEIGHT 560 //窗口高度

//星星数据结构体
struct STAR{
	double	x;//x坐标
	int		y;//y坐标
	double	step;//移动速度
	int		color;//颜色
}star[MAXSTAR];

// 初始化星星数据
void InitStar(int i){
	star[i].x = 0;//x初始坐标为0
	star[i].y = rand() % 480;//随机产生y坐标
	star[i].step = (rand() % 5000) / 1000.0 + 1;
	star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5);// 速度越快,颜色越亮
	star[i].color = RGB(star[i].color, star[i].color, star[i].color);//设置颜色
}

// 移动星星
void MoveStar(int i){
	putpixel((int)star[i].x, star[i].y, 0);//擦掉原来的星星
	star[i].x += star[i].step;//获取位置
	if (star[i].x > WIDTH){
		InitStar(i);//越界后重新生成星星
	}
	putpixel((int)star[i].x, star[i].y, star[i].color);//绘画新星星
}

// 主函数
int main(){
	srand(time(NULL));//随机刷新
	initgraph(WIDTH, HEIGHT);//创建窗口
	//初始化
	for(int i = 0; i < MAXSTAR; i++){
		InitStar(i);
		star[i].x = rand() % WIDTH;
	}
	// 绘制星空,按任意键退出
	while(!_kbhit()){
		for(int i = 0; i < MAXSTAR; i++){
			MoveStar(i);
		}
		Sleep(20);
	}
	closegraph();//关闭窗口
	return 0;
}

运行结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854052.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号