1.程序运行环境(必读)
Visual C++ 6.0、Visual Studio 2010 ~ Visual Studio 2022 等支持EasyX图形库的软件均可以使用,实现相应功能。
--------- >> 特别说明: 如果已经安装过 EasyX图形库,可直接看”代码实现“部分。 << ------------
2. 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;
}