C/C++編程筆記:浪漫流星雨表白裝b程序


  作為一個未來可能會成為一個專業程序員的小伙們,不知道你們現在學到哪里了,學了點東西之后有沒有想在你女朋友面前裝個大大的b呢,今天小編就給你一個機會來研究一下下邊的代碼吧,保證大寫的N,當然大佬是排除在外的!

  直接源碼分享:

  #include

  #include //圖形庫:easyX201905

  #include

  #include

  #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++編程難度很大,如果你想更快提升自己的編程能力和編寫項目的水平,歡迎一起共同成長!

  C語言C++編程學習交流圈子,Q群【928550752】

  有一些源碼和資料分享,歡迎轉行也學習編程的伙伴,和大家一起交流成長會比自己琢磨更快哦!

提升C編程能力
http://www.makeru.com.cn/live/1392_1166.html?s=45051
夯實C語言,從小白到大牛的進階之路!
http://www.makeru.com.cn/live/5413_1980.html?s=45051
指針
http://www.makeru.com.cn/live/1392_238.html?s=45051
指針換裝你還認識嗎
http://www.makeru.com.cn/live/5413_2043.html?s=45051
C語言控制led燈
http://www.makeru.com.cn/live/1392_304.html?s=45051


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM