这篇文章主要为大家详细介绍了C语言实现放烟花的程序,有音乐播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这是一个利用C语言编写放烟花的程序(同时也可以播放音乐),供大家参考,具体内容如下
代码如下
#pragma once #include#include //图形界面库头文件 #include //计算圆形的轨迹坐标 #include #include #include #include #pragma comment(lib,"winmm.lib") //#include 包含头文件 //#pragma comment(lib."文件名称") 包含库文件 constexpr auto WND_WIDTH = 1000; constexpr auto WND_HEIGHT = 600; constexpr auto PI = 3.141592653589793238; constexpr auto NUM = 14; /***********结构****************/ struct JET //烟花弹 { int x, y; //发射点坐标 int hx, hy; //最高点坐标 爆炸坐标 int height; //高度 最高点y 发射点y的差值 bool isshoot; //是否发射状态 DWORD t1, t2, dt; //保存时间 时间可以用来描述发射速度 IMAGE img[2]; //保存烟花一明一暗的图片 byte n : 1; //保存烟花弹的明暗状态 位段 //字节为单位 int 4 char 1 n一个位 0-1 }jet[NUM]; //结构体数组13 img这个数组 struct FIRE { int r; int max_r; int x, y; int cen_x, cen_y; int width, height; int xy[240][240]; bool show; bool draw; DWORD t1, t2, dt; }fire[NUM]; void welcome(); void init(int i); void loadimages(); void choice(DWORD& t1); void shoot(); void Show(DWORD* pMem); void clss(int a); void delay(int a); void detabase(int a); int main() { //res 1.wav PlaySound(L"sound.dll", NULL, SND_LOOP | SND_FILENAME | SND_ASYNC); //mp3播放 //mciSendString(L"open 1.mp3 alias bkmusic", NULL, 0, NULL); //mciSendString(L"play bkmusic repeat", NULL, 0, NULL); int a; for (a = 0; a <5; a++) { detabase(a); delay(100000); clss(1); } delay(500000); initgraph(WND_WIDTH, WND_HEIGHT); //init初始化 graph图形界面 窗口 srand((unsigned int)time(NULL)); DWORD t1 = timeGetTime(); DWORD* pMem = GetImageBuffer(); //第一个界面 welcome(); //初始化 for (int i = 0; i 2) //2ms产生一个烟花弹 { int n = rand() % 200; //0-199 if (n jet[i].dt && jet[i].isshoot == true) { putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n]); if (jet[i].hy fire[i].dt && fire[i].show == true) { if (fire[i].r = fire[i].max_r - 1) { fire[i].draw = false; init(i); } fire[i].t1 = fire[i].t2; } if (fire[i].draw) { for (double a = 0; a <= 6.28; a += 0.01) { int x1 = (int)(fire[i].cen_x + fire[i].r * cos(a)); int y1 = (int)(fire[i].cen_y + fire[i].r * sin(a)); if (x1 > 0 && x1 0 && 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 <1000 && yy < 600>0) { pMem[yy * 1000 + xx] = BGR(fire[i].xy[x1][y1]); } } } fire[i].draw = true; } } } void clss(int a) { system("cls"); } void delay(int a) { while (a) { a--; } } void detabase(int a) { switch (a) { case 1: { //printf("■■■■■■■■■■■■■■■■■■■■■■■■■\n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■■■■■■■■■\n"); printf(" ■■■ ■■■■■■■■ \n"); printf(" ■■■■■■■■■■■■ ■■ \n"); printf(" ■■■■■■■■■■■■ ■■ \n"); printf(" ■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf("■■■■■■■■■■■■■ ■■■■■■■■■■\n"); printf("■■■■■■■■■■■■■■ ■■■■■■■■■■\n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■■■■■■■■■■■ ■■ ■■ \n"); printf(" ■■■■■■■■■■■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■ ■■ ■ ■■ ■■ \n"); printf(" ■■■ ■■ ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■■ ■■ ■■ \n"); printf("■■■ ■■ ■ ■■ ■■ \n"); printf("■■ ■■ ■■ ■■ \n"); printf(" ■■■■ ■■■ ■■ \n"); printf(" ■■■■ ■ ■■ \n"); } break; case 2: { //printf("■■■■■■■■■■■■■■■■■■■■■■■■\n"); printf(" ■■■ \n"); printf(" ■■■ \n"); printf(" ■■ \n"); printf(" ■■■ \n"); printf(" ■■■■■■■■■■■■■■■■■■■ \n"); printf(" ■■■ ■■■ ■ \n"); printf(" ■■■ ■■ \n"); printf(" ■■■ ■■ \n"); printf(" ■■■■ ■■ \n"); printf("■■■■ ■■ \n"); printf(" ■■ ■■■■■■■■■■■■■■■■■ \n"); printf(" ■■■■■■■■■■■■■■■■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf("■■■■■■■■■■■■■■■■■■■■■■■■\n"); printf("■■■■■■■■■■■■■■■■■■■■■■■■\n"); printf(" ■■ \n"); printf(" ■■ \n"); printf(" ■■ \n"); printf(" ■■ \n"); printf(" ■■ \n"); printf(" ■■ \n"); printf(" ■■ \n"); } break; case 3: { //printf("■■■■■■■■■■■■■■■■■■■■■■■■■\n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■■■■■■■■■■ \n"); printf(" ■■ ■■■■■■■■■■■■ \n"); printf(" ■■ ■■ ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ ■■ ■■ \n"); printf("■■ ■■ ■■ ■■ ■■ \n"); printf("■■ ■■ ■■■ ■■ ■■ \n"); printf("■■ ■■ ■■ ■■ \n"); printf("■■ ■■ ■■ ■■ \n"); printf("■■ ■■ ■■ ■■■ \n"); printf(" ■■ ■■■■■■■■■■■■■■■■\n"); printf(" ■■ ■■■■■■■■■ ■■■\n"); printf(" ■■ ■■■ \n"); printf(" ■■ ■■■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■ \n"); printf(" ■■ ■■ ■■■ \n"); printf(" ■■ ■■■ ■■■ \n"); printf(" ■■ ■■■ ■■■■ \n"); printf(" ■■ ■■■■ ■■■■\n"); printf(" ■■ ■■■ ■■ \n"); printf(" ■■ ■ \n"); } break; case 4: { //不用 不用 //printf("■■■■■■■■■■■■■■■■■■■■■■■■■\n"); printf(" ■■ \n"); printf(" ■■ ■■■■■■■■■■■■■■ \n"); printf(" ■■■■■■■■■■■■■■■■■■■ \n"); printf(" ■■■ \n"); printf(" ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■ ■■ \n"); printf(" ■■■ ■■ \n"); printf(" ■■■ ■■ \n"); printf(" ■■■■■■■■■■■■■■■■■■■■■ \n"); printf(" ■■■■ ■■■ ■ \n"); printf(" ■■ \n"); printf(" ■■ \n"); printf(" ■ ■■ \n"); printf(" ■■■■ ■■ ■■■ \n"); printf(" ■■■ ■■ ■■■■ \n"); printf(" ■■■ ■■ ■■■■ \n"); printf(" ■■■ ■■ ■■■■ \n"); printf(" ■■■ ■■ ■■■■ \n"); printf(" ■■■ ■■ \n"); printf(" ■■■ ■■ \n"); printf(" ■■■■■ \n"); printf(" ■■■■ \n"); printf(" ■■ \n"); } break; case 5: { printf("happy spring festival!"); } break; } }
以上就是C语言实现放烟花的程序的详细内容,更多请关注0133技术站其它相关文章!