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

1.程序运行环境(必读)

                     Visual C++ 6.0Visual Studio 2010 ~ Visual Studio 2022 等支持EasyX图形库的软件均可以使用,实现相应功能。

--------- >>  特别说明: 如果已经安装过 EasyX图形库,可直接看”代码实现“部分。  << ------------

2. EasyX 安装程序下载

        点击下方下载链接,进入官网后点击右上角”下载“按钮即可下载EasyX安装程序。

                                      EasyX 官网下载链接(点击跳转)

      

3. ” EasyX “ 安装步骤

(1)找到 并 打开下载好的EasyX安装程序,如下图所示。

 

(2)点击 下一步,如下图所示。

 

(3)根据软件版本安装 EasyX图形库,具体说明见下图。

 

(4)安装完成后点击 ”关闭“即可。

 

4.代码实现

//导入头文件
#include<stdlib.h>
#include<stdio.h>
#include <time.h>
#include <conio.h>
#include<easyx.h>
#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;
}

5.运行结果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等日出看彩虹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值