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;
}
运行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)