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; }



