C语言兴趣学习记:浪漫流星雨表白程序

作为一个未来可能会成为一个专业程序员的小伙们,不知道你们现在学到哪里了,学了点东西之后有没有想在你女朋友面前大大的表现表现呢,

今天小编就给你一个机会来研究一下下边的代码吧,保证大写的6,当然大佬是排除在外的!

 

直接源码分享:

  #define MAXSTAR 1314

  #define MAXMETEOR 520

  //结构体

  //几个星星:1000

  struct Star

  {

  int x, y;

  int color;

  int step;

  }star[MAXSTAR];

  //流星结构

  struct Meteor

  {

  int x, y;

  int style;

  int step;

  }meteor[MAXMETEOR];

  IMAGE img1, img2;//1.定义图片变量

  void printText()

  {

  //设置文字颜色

  settextcolor(RGB(255, 0, 255));//三原色:红,绿,蓝

  //调整字体大小

  settextstyle(50, 0, "华文行楷");

  //你的文采:发到公屏上

  /*

  海底月是天上月,眼前人是心上人

  春分十里,我喜欢你

  终是庄周圆了梦

  这是我的手背,这是我的脚背,你是我的宝贝。

  一粥一饭/不及你/颦颦一笑

  问君能有几多愁?家人未入眼帘人消瘦

  我喜欢你,像风走了八万里,不问归期

  白酒清欢无别事,我在等风也在等你

  就承认一笑倾城一见自难忘

  问君能有几多愁?佳人未入眼帘人消瘦

  ABCDEFGHIJKLMNOPQRSTVWXYZ

  */

  //在指定位置输出字符串

  outtextxy(450, 20, "七夕到了,炮姐我喜欢你");

  //设置文字颜色

  settextcolor(RGB(0, 255, 255));//三原色:红,绿,蓝

  //调整字体大小

  settextstyle(40, 0, "华文行楷");

  outtextxy(200, 100, "终是庄周圆了梦");

  outtextxy(200, 150, "春分十里,我喜欢你");

  outtextxy(200, 200, "一粥一饭不及你颦颦一笑");

  outtextxy(200, 250, "就承认一笑倾城一见自难忘");

  outtextxy(200, 300, "海底月是天上月,眼前人是心上人");

  outtextxy(200, 350, "白酒清欢无别事,我在等风也在等你");

  outtextxy(200, 400, "ABCDEFGHIJKLMNOPQRSTVWXYZ");

  outtextxy(200, 450, " 我喜欢你,像风走了八万里,不问归期");

  outtextxy(200, 500, "问君能有几多愁?佳人未入眼帘人消瘦");

  outtextxy(200, 550, "这是我的手背,这是我的脚背,你是我的宝贝。");

  outtextxy(300, 600, "----------------------------------爱你的艺辰");

  _getch();//按键

  }

  //放大招:流星雨

  //初始化星星

  void initStar(int i)

  {

  //随机产生坐标,颜色,速度

  star[i].x = rand() % 1200;

  star[i].y = rand() % 800;

  star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);

  star[i].step = rand() % 10;

  }

  //画星星

  void drawStar(int i)

  {

  //画像素点:在初始化星星的坐标

  putpixel(star[i].x, star[i].y, star[i].color);

  //移动星星:给它速度

  star[i].x += star[i].step;

  //跑到窗口外面的星星:初始化

  if (star[i].x >= 1200)

  {

  putpixel(star[i].x, star[i].y, star[i].color);

  initStar(i);

  }

  }

  //流星

  //初始化流星

  void initMeteor(int i)

  {

  meteor[i].x = rand()%2200-1000;//[-1200,1199]

  meteor[i].y = rand()%20-200;

  meteor[i].style = rand() % 2; //0,1

  meteor[i].step = rand() % 30 + 1;//+3 :流星的速度不为0

  }

  //画流星:贴图技术

  void drawMeteor(int i)

  {

  //3.贴图:显示图片

  for (i = 0; i < MAXMETEOR; i++)

  {

  switch (meteor[i].style)

  {

  case 0:

  putimage(meteor[i].x, meteor[i].y, &img1,SRCPAINT);

  break;

  case 1:

  putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);

  break;

  }

  }

  }

  //移动流星

  void moveMeteor(int i)

  {

  for (i = 0; i < MAXMETEOR; i++)

  {

  meteor[i].x += meteor[i].step;

  meteor[i].y += meteor[i].step;

  if (meteor[i].x >= 1200 || meteor[i].y >= 800)

  {

  initMeteor(i);

  }

  }

  }

  int main()

  {

  //2.加载图片

  loadimage(&img1, "1.jpg", 50, 50);

  loadimage(&img2, "2.jpg", 50, 50);

  //界面:初始化图形环境宽度,高度

  initgraph(1200, 800);

  //随机函数种子:如果不播种:随机出来的是伪随机

  srand((unsigned int)time(NULL));

  printText();

  int i = 0;

  for ( i = 0; i < MAXSTAR; i++)

  {

  initStar(i);

  }

  for (i = 0; i < MAXMETEOR; i++)

  {

  initMeteor(i);

  }

  drawMeteor(i);

  while (1)

  {

  BeginBatchDraw();

  cleardevice();

  for (i = 0; i < MAXSTAR; i++)

  {

  drawStar(i);

  }

  drawMeteor(i);

  moveMeteor(i);

  Sleep(100);

  EndBatchDraw();

  }

  while (1); //卡屏 _getch()函数

  closegraph();//关闭图形环境

  return 0;

  }

  代码都给你们了,还在等什么呢?GOGOGO!

  自学C/C++编程难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!

      

       UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

       分享(源码、项目实战视频、项目笔记,基础入门教程)

       学:

C语言兴趣学习记:浪漫流星雨表白程序_第1张图片

       学:

C语言兴趣学习记:浪漫流星雨表白程序_第2张图片

 

你可能感兴趣的:(C,浪漫,表白,C语言,流星雨小程序,c++)