C语言实战之浪漫烟花表白程序代码

这篇文章主要介绍了C语言实战之浪漫烟花表白程序代码,需要的朋友可以参考下

创建win32控制台应用程序,选择空项目。

创建完毕后,右击头文件新建一个头文件(.h)。名字写main.h

然后在源文件新建一个C++文件(.cpp)。名字写main.cpp

如图:

然后在main.h里面写上如下代码:

 #include  #include  #include  #include  #include  #include  #pragma comment(lib,"winmm.lib") #define PI		3.1415926535 #define NUM		13 //烟花弹 struct JET { int		x, y;	//坐标 int		hx,hy; //最高点坐标 bool	shoot; //判断烟花弹是不是发射状态 DWORD t1, t2, dt; //烟花弹发射的速度 IMAGE img[2];    //图片2张  一明一暗的两张 byte n : 1;   //结构体 位段 变量 n   占用内存的一个位! }jet[NUM]; //烟花 struct FIRE { int r;    //半径 int maxr;  //最大半径 int x, y;		//相对于窗口 中心点的坐标 int cenx, ceny; //相对于图片本身 中心点的坐标 int width, height; int xy[240][240];  //图片 保存到一个像素矩阵。 bool show;				//是否绽放 bool draw;				//是否绘制 DWORD t1, t2, dt;		//爆炸的速度 }fire[NUM]; void Init(int i); void Load(); void Chose(DWORD& t1); void Shoot(); void Show(DWORD* pem); 在main.cpp写上如下代码: /**************************************************** ***************************************************** ****************表白浪漫烟花项目开发******************** ****************主讲人:三黑之毅************************ ****************最后修改:2019年3月20日**************** ***************************************************** ****************************************************/ #include "main.h" int main() { //打开一个窗口 1200 800 initgraph(1200, 800); srand((unsigned int)time(NULL)); mciSendString(L"open ./fire/千年.mp3 alias bgm", 0, 0, 0); mciSendString(L"play bgm repeat", 0, 0, 0); DWORD t1 = GetTickCount(); DWORD* pem = GetImageBuffer(); for (int i = 0; i  1)  //每隔1个ms  产生一个烟花弹 { int n = rand() % NUM;  //0-12 if (jet[n].shoot == false&&fire[n].show == false) //非发射状态 { jet[n].x = rand()%1200; jet[n].y = rand() % 100 + 600; //600-699之间 jet[n].hx = jet[n].x; jet[n].hy = rand()%400;			//0-399 jet[n].shoot = true;            //发射状态 putimage(jet[n].x, jet[n].y, &jet[n].img[jet[n].n], SRCINVERT); } t1 = t2; } } void Shoot() { for (int i = 0; i = jet[i].dt&&jet[i].shoot==true) { putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT); if (jet[i].y >= jet[i].hy) { jet[i].n++;		//一闪一闪 jet[i].y -= 5;  //上升 } //putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT); if (jet[i].y <= jet[i].hy)  //到达最高点了 { //擦除烟花弹 putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT); //烟花弹最高点的 hx hy  -----》烟花 fire[i].x = jet[i].hx; fire[i].y = jet[i].hy; //改变烟花弹的状态 jet[i].shoot = false; fire[i].show = true; } putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT); jet[i].t1 = jet[i].t2; } } } void Show(DWORD* pem) { int dir[16] = { 5, 5, 5, 5, 5, 8, 25, 25, 25, 55, 55, 55, 55, 65, 65, 66 }; for (int i = 0; i fire[i].dt&&fire[i].show == true) { if (fire[i].r = fire[i].maxr - 1) { fire[i].draw = false; Init(i); } fire[i].t1 = fire[i].t2; } if (fire[i].draw == true) { //圆  PI for (double a = 0; a <= 6.28; a += 0.01) { int x1 = (int)(fire[i].cenx + fire[i].r*cos(a)); int y1 = (int)(fire[i].ceny - fire[i].r*sin(a)); if (x1 > 0 && x10 && y1 > 8) & 0xff; int r = fire[i].xy[x1][y1] >> 16; int xx = (int)(fire[i].x + fire[i].r*cos(a)); int yy = (int)(fire[i].y - fire[i].r*sin(a)); if (r>0x20 && g > 0x20 && b > 0x20 && xx > 0 && xx<1200 && yy>0 && yy <800) pem[yy * 1200 + xx] = BGR(fire[i].xy[x1][y1]); } } fire[i].draw = false; } } }

注:音乐:千年.mp3,自己去网上下载,然后放到程序fire目录下。
注:图片素材就是这两张:

自己下载一下这两图,也放到fire目录下。
学习c语言:
幼儿园英语水平 初中数学水平 高中语文水平
也就是说只要会记单词就行!!!
业务逻辑
写程序的顺序
这是最主要的,而并不是代码
会了所有代码,脑子里没有业务逻辑,还是没用,被称为“码农”
还是不懂的联系q:2060164008或进q群:706625210。
今天直播到此结束!!!三黑之毅!

以上就是C语言实战之浪漫烟花表白程序代码的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » C语言