流星雨代码

简介: 流星雨代码

今天学的指针,但还没太学懂,所以先发个娱乐性代码叭,感兴趣的可以自己试一下

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <time.h>
#include <Mmsystem.h>
#pragma comment(lib,"winmm.lib")
#define METEOR_NUM 75
#define STAR_NUM   500
IMAGE bk,img4,img2,img3;
struct Star
{
  int x, y;
  int r;
  int speed;
  COLORREF color;
  void init(int x, int y, int r, int speed, COLORREF color)
  {
    this->x = x;
    this->y = y;
    this->r = r;
    this->speed = speed;
    this->color = color;
  }
  void draw()
  {
    setfillcolor(color);
    solidcircle(x, y, r);
  }
  void move()
  {
    x += speed;
    if (x > getwidth()) x = 0;
  }
};
struct Star  stars[STAR_NUM];
struct Meteor
{
  int x, y;
  int speed;
  int style;
  void init(int x, int y, int speed, int style)
  {
    this->x = x;
    this->y = y;
    this->speed = speed;
    this->style = style;
  }
  
  void move()
  {
    x += speed;
    y += speed;
    if (x > getwidth()) x = 0;
  }
}
meteor[METEOR_NUM];
void initStars();
void initMeteor();
void showStars();
void showMeteor();
void starsMove();
void meteorMove();
void loadImg();
void initProject();
void welcome();
int main()
{
  initProject();
  initStars();
  initMeteor();
  loadImg();
  welcome();
  while (1)
  {
    BeginBatchDraw();
    putimage(0, 0, &bk );
    showMeteor();
    showStars();
    meteorMove();
    starsMove();
    Sleep(150); 
    EndBatchDraw();
  }
  getchar();
  system("pause");
  return 0;
}
void showStars()
{
  for (int i = 0; i < STAR_NUM; i++)
    stars[i].draw();
}
void showMeteor()
{
  for (int i = 0; i < METEOR_NUM; i++)
  {
    if (meteor[i].style == 0)
    {
      putimage(meteor[i].x, meteor[i].y, &img4, SRCPAINT);
    }   if (meteor[i].style == 1)
    {
      putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);
    }    if (meteor[i].style == 2)
    {
      putimage(meteor[i].x, meteor[i].y, &img3, SRCPAINT);
    }   
  }
}
void starsMove()
{
  for (int i = 0; i < STAR_NUM; i++)
    stars[i].move();
}
void meteorMove()
{
  for (int i = 0; i < METEOR_NUM; i++)
  {
    meteor[i].move();
    if (meteor[i].x > getwidth() || meteor[i].y > getheight())
    {
      initMeteor();
    }
  }
}
void initStars()
{
  for (int i = 0; i < STAR_NUM; i++)
  {
    stars[i].init(rand() % getwidth(), rand() % getheight(), rand() % 3 + 1, rand() % 5, rand() % RGB(rand() % 256, rand() % 256, rand() % 256));
    }
}
void initMeteor()
{
  for (int i = 0; i < METEOR_NUM; i++)
  {
    meteor[i].init(rand() % getwidth(), rand() % getheight(), rand() % 20+1, rand() % 3);
  }
}
void welcome()
{
  setbkmode(TRANSPARENT);
  settextstyle(40, 0, L"华文行楷");
  int tx = (getwidth() - textwidth(L"少年何妨梦摘星,敢挽桑弓射玉衡")) / 2;
  srand(time(NULL));
  while (1)
  {
    if (_kbhit()) break;
    cleardevice();
    putimage(0, 0, &bk);
    settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
    outtextxy(tx, 20, L"少年何妨梦摘星,敢挽桑弓射玉衡");
    outtextxy(75, 100, L"追求自由是永恒的主题,");
    outtextxy(500, 100, L"在星空中翱翔无羁。");
    outtextxy(75, 150, L"仰望星空,心潮澎湃,");
    outtextxy(500, 150, L"感叹人生短暂如流星,");
    outtextxy(75, 200, L"渴望留下永恒的痕迹,");
    outtextxy(500, 200, L"在宇宙中闪耀光芒。");
    outtextxy(75, 250, L"梦想不止,追逐不息,");
    outtextxy(500, 250, L"流星的瞬间也是美好,");
    outtextxy(275, 300, L"梦想在心中永不消逝。");
    Sleep(1000);
    
  }
}
void loadImg()
{
  loadimage(&bk, L"bk.jpg", 889, 500);
  loadimage(&img4, L"img1.png", 40, 39);
  loadimage(&img2, L"img2.png", 55, 62);
  loadimage(&img3, L"img3.png", 10, 12);
}
void initProject()
{
  initgraph(889, 500);
  mciSendString(L"open黑夜问白天.mp3", 0, 0, 0);
  mciSendString(L"play黑夜问白天.mp3", 0, 0, 0);
  Sleep(5000);
}

音乐素材可以私我,是JJ的黑夜问白天呀。

相关文章
Threejs实现下雨,下雪,阴天,晴天,火焰
Threejs实现下雨,下雪,阴天,晴天,火焰
1762 0
Threejs实现下雨,下雪,阴天,晴天,火焰
除夕最炫烟花代码
除夕最炫烟花代码
136 0
|
Python
你值得拥有——流星雨下的告白(Python实现)
你值得拥有——流星雨下的告白(Python实现)
125 0
|
前端开发 JavaScript
2023跨年代码(烟花+背景音乐)
2023跨年代码(烟花+背景音乐)
336 0
代码流星雨
代码流星雨
108 0
代码流星雨
|
前端开发 JavaScript
2023跨年烟花(浪漫烟花+美妙音乐+雪花飘飘)含前端源码直接下载---系列最终篇
2023跨年烟花(浪漫烟花+美妙音乐+雪花飘飘)含前端源码直接下载---系列最终篇
499 0
2023跨年烟花(浪漫烟花+美妙音乐+雪花飘飘)含前端源码直接下载---系列最终篇
|
前端开发 JavaScript IDE
YourBatman用趣味代码雨祝你:端午安康
使用Java的AWT给你写了个祝福
237 0
YourBatman用趣味代码雨祝你:端午安康
|
存储 程序员
七夕快到了,用SwiftUI做一个表达爱意的心形动画
传统的七夕快到了,作为一个程序猿,最浪漫的礼物当然是自己写的啦! 思来想去也不知道写什么好,在某天在某音上学习时看到点赞的动画效果还不错,那不如就做一个表达爱意的动画吧。
360 0
七夕快到了,用SwiftUI做一个表达爱意的心形动画
uiu
烟花代码,予心上人最璀璨烟花—— 附源码与成品(HTML+CSS+JS)
烟花代码,予心上人最璀璨烟花—— 附源码与成品(HTML+CSS+JS)
uiu
3117 0
烟花代码,予心上人最璀璨烟花—— 附源码与成品(HTML+CSS+JS)