我的编程空间,编程开发者的网络收藏夹
学习永远不晚

利用C语言编写的放烟花程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

利用C语言编写的放烟花程序

本篇文章为大家展示了利用C语言编写的放烟花程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

代码如下

#pragma once#include<stdio.h>#include<graphics.h>  //图形界面库头文件#include<math.h>    //计算圆形的轨迹坐标#include<conio.h>#include<time.h>#include<stdlib.h>#include<mmsystem.h>#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 < NUM; i++) { init(i); } loadimages(); BeginBatchDraw(); while (!_kbhit()) { //Sleep(10); for (int i = 0; i < 1000; i++) {  for (int j = 0; j < 3; j++)  {  int px1 = rand() % 1000;  int py1 = rand() % 600;  if (py1 < 599)  {   pMem[py1 * 1000 + px1] = pMem[py1 * 1000 + px1 + 1] = BLACK;  }  } } choice(t1); shoot(); Show(pMem); EndBatchDraw(); } return 0;}void welcome(){ settextcolor(YELLOW); for (int i = 0; i < 50; i++) { //圆心(500,300) 半径150 60个均匀点的x,y int x = 500 + int(150 * sin(PI * 2 * i / 60)); int y = 300 + int(150 * cos(PI * 2 * i / 60)); cleardevice(); settextstyle(i, 0, L"微软雅黑"); outtextxy(x - 100, y - 150, L"测试使用1234567890");   //在指定的位置去输出字符 outtextxy(x, y - 100, L"测试1234567890"); Sleep(25); } //_getch();  //接收字符 不回显 直接接收 Sleep(2000); cleardevice(); settextstyle(25, 0, L"宋体"); outtextxy(400, 150, L"1,"); outtextxy(400, 200, L"2"); outtextxy(400, 250, L"3,"); outtextxy(400, 300, L"4,"); outtextxy(400, 350, L"5"); outtextxy(560, 400, L"---6"); Sleep(3000); //_getch();}void init(int i){ int r[14] = { 120,120,155,123,130,147,138,138,130,135,140,132,155,160 }; int x[14] = { 120,120,110,117,110,93,102,102,110,105,100,108,110,132 }; int y[14] = { 120,120,85,118,120,105,103,110,110,120,1201,04,85,145 }; fire[i].x = 0; fire[i].y = 0; fire[i].width = 240; fire[i].height = 240; fire[i].max_r = r[i]; fire[i].cen_x = x[i]; fire[i].cen_y = y[i]; fire[i].show = false; fire[i].dt = 5; fire[i].t1 = timeGetTime(); fire[i].r = 0; //初始化 烟花弹 jet[i].x = 0; jet[i].y = 0; jet[i].hx = 0; jet[i].hy = 0; jet[i].height = 0; jet[i].t1 = timeGetTime();  //获取系统时间 jet[i].dt = rand() % 10;  //0-9的随机时间 jet[i].n = 0; jet[i].isshoot = false;}void loadimages(){ IMAGE fm, gm; loadimage(&fm, L"flower.dll", 3120, 240); for (int i = 0; i < NUM; i++) { SetWorkingImage(&fm); getimage(&gm, i * 240, 0, 240, 240); SetWorkingImage(&gm); for (int a = 0; a < 240; a++) {  for (int b = 0; b < 240; b++)  {  fire[i].xy[a][b] = getpixel(a, b);  } } } IMAGE jetimg; loadimage(&jetimg, L"shoot.dll", 200, 50); //set设置 working正在工作的 image图片 SetWorkingImage(&jetimg); for (int i = 0; i < NUM; i++) { int n = rand() % 5;  //0-4的随机数 getimage(&jet[i].img[0], n * 20, 0, 20, 50); getimage(&jet[i].img[1], (n + 5) * 20, 0, 20, 50); } SetWorkingImage(NULL);}void choice(DWORD& t1){ DWORD t2 = timeGetTime(); if (t2 - t1 > 2)  //2ms产生一个烟花弹 { int n = rand() % 200;   //0-199 if (n < NUM && jet[n].isshoot == false && fire[n].show == false) {  //重置烟花弹  jet[n].x = rand() % (WND_WIDTH - 20);  jet[n].y = rand() % 100 + 400;  //450-549  jet[n].hx = jet[n].x;  jet[n].hy = rand() % 400;    //0-399  jet[n].height = jet[n].y - jet[n].hy;  jet[n].isshoot = true;  //n  putimage(jet[n].x, jet[n].y, &jet[n].img[jet[n].n]); } t1 = t2; }}void shoot(){ for (int i = 0; i < NUM; i++) { jet[i].t2 = timeGetTime(); if (jet[i].t2 - jet[i].t1 > jet[i].dt && jet[i].isshoot == true) {  putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n]);  if (jet[i].hy < jet[i].y)  {  jet[i].n++; //0-1 明暗交替  jet[i].y -= 5;  }  putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n]);  if (jet[i].y <= jet[i].hy)  {  fire[i].y = jet[i].hy;  fire[i].x = jet[i].hx;  fire[i].show = true;  jet[i].isshoot = false;  }  jet[i].t1 = jet[i].t2; } }}void Show(DWORD* pMem){ int drt[16] = { 5,5,5,5,5,6,25,25,25,25,25,55,55,55,55,55 };  //dt for (int i = 0; i < NUM; i++) { fire[i].t2 = timeGetTime(); if (fire[i].t2 - fire[i].t1 > fire[i].dt && fire[i].show == true) {  if (fire[i].r < fire[i].max_r)  {  fire[i].r++;  fire[i].dt = drt[fire[i].r / 10];  fire[i].draw = 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 < fire[i].width && y1>0 && y1 < fire[i].height)  {   int b = fire[i].xy[x1][y1] & 0xff;   int g = (fire[i].xy[x1][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 && yy>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语言编写的放烟花程序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

利用C语言编写的放烟花程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用C语言编写的放烟花程序

本篇文章为大家展示了利用C语言编写的放烟花程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下#pragma once#include#include
2023-06-06

怎么用C语言给喜欢的人写烟花

本篇内容主要讲解“怎么用C语言给喜欢的人写烟花”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言给喜欢的人写烟花”吧!一、结构体首先当然是我们的老朋友结构体,其中艺术字结构体不用我多说,
2023-06-25

C语言如何实现烟花表白程序

这篇文章将为大家详细讲解有关C语言如何实现烟花表白程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图烟花爆炸效果思路不能直接把烟花图片贴到窗口中,需要把烟花的像素点保存到二维数组中,以相同的半径大小
2023-06-29

如何使用Dev C++编写C语言程序

本篇内容介绍了“如何使用Dev C++编写C语言程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C语言是什么C语言是一门面向过程的、抽象化
2023-06-08

怎么用c语言编写汉诺塔程序

以下是使用C语言编写汉诺塔程序的示例代码:#include void hanoi(int n, char from, char to, char aux) {if (n == 1) {printf("Move disk 1 from %c
2023-10-23

VS2017使用教程(使用VS2017编写C语言程序)

以下是使用VS2017编写C语言程序的简单教程:步骤1:安装VS2017首先,你需要从官方网站下载并安装Visual Studio 2017。你可以选择适合你的操作系统的版本(例如Windows 10)并按照安装向导的指示完成安装。步骤2:
2023-09-13

c语言程序编写的步骤是什么

编写C语言程序的一般步骤如下:1. 确定程序的目标和需求:明确程序的目标和功能,确定需要实现的功能和处理的问题。2. 设计程序的逻辑结构:根据目标和需求,设计程序的整体逻辑结构,确定主要的模块和数据结构。3. 编写算法:将程序的功能拆分成多
2023-10-12

利用C语言编写一个扫雷游戏

本篇文章为大家展示了利用C语言编写一个扫雷游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方
2023-06-06

如何用汇编和C语言写流水灯程序

本篇内容介绍了“如何用汇编和C语言写流水灯程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!现在可能很少看到汇编程序了,但单片机的启动文件、
2023-06-15

如何用c语言编写简单计算机程序

以下是一个简单的C语言程序,用于实现两个数的加法运算:```#include int main() {int num1, num2, sum;printf("请输入第一个数:");scanf("%d", &num1);printf("请输入
2023-09-22

利用C语言编写一个无限循环语句

这篇文章主要介绍了利用C语言编写一个无限循环语句问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

利用C语言编写一个三子棋游戏

这篇文章给大家介绍利用C语言编写一个三子棋游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体内容如下说明:该游戏的实现需要用到三个文件1、test.c:放置主函数(main())和菜单函数(menu())和游戏函数
2023-06-06

Python编程语言写的程序比C程序要短的原因是什么

Python编程语言写的程序比C程序要短的原因是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python使编程语言是一种使用起来十分简单,但是Python编程语言是一个真
2023-06-17

C语言中花式退出程序的方式总结

在本篇文章当中主要给大家介绍C语言当中一些不常用的特性,比如在main函数之前和之后设置我们想要执行的函数,以及各种花式退出程序的方式,需要的可以参考一下
2022-11-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录