用c语言编写动态烟花的方法:首先绘制菜单界面显示文字;然后设置烟花有上升阶段和爆炸阶段,定义烟花和烟花弹结构体;最后初始化数据,加载资源贴图,随机发射数目随机。
用c语言编写动态烟花的方法:
效果展示
动态图
总体框架
/***************************************** * 项目名称:浪漫烟花 * 项目描述:贴图 * 项目环境:vs2019 * 生成日期:2020-9-7 * 作者所属:追梦 *****************************************/#include<graphics.h>#include<stdio.h>#include<stdlib.h>#include<windows.h>#define NUM 10 //烟花弹个数,烟花//烟花弹struct jet{ int x, y; //烟花弹坐标 int hx, hy; //烟花弹最高点坐标 bool shoot; //烟花弹是否处于发射状态 DWORD t1, t2, dt; //发射时间 引爆时间 间隔时间 IMAGE img[2]; //2张图片 一明一暗 01下标 byte n : 1; //C结构体 位段 //n 变量 1个位 0,1 n++ 0,1,0,1}jet[NUM]; //烟花弹个数//烟花struct Fire{ int x, y; //烟花的坐标 int r; //烟花的半径 int max_r; //烟花的最大半径 int cen_x, cen_y; //中心距左上角的距离 int width, height; //长宽 int xy[240][240]; //重要,像素,矩阵 bool draw; //画出 bool show; //显示 DWORD t1, t2, dt; //发射时间 引爆时间 间隔时间}fire[NUM];//初始化函数void FireInit(){}//加载资源void Load(){}//选择烟花弹void ChoiceJet(){}//判断发射void Shoot(){}//显示烟花void ShowFire(){}//菜单界面void welcome(){}//主函数int main(){ //初始界面(1000,600) initgraph(1000, 600); welcome(); Load(); while (1) { ChoiceJet(); Shoot(); ShowFire(); } system("pause"); return 0;}
逻辑关系
首先绘制菜单界面显示文字。烟花有上升阶段和爆炸阶段,定义烟花和烟花弹结构体。
烟花:坐标位置,爆炸的半径大小,最大半径,中心距左上角的距离,长宽,像素,时间等。
烟花弹:坐标位置,最高点,是否发射,时间,个数等。
初始化数据。加载资源贴图。随机发射数目随机,
源代码
/***************************************** * 项目名称: 浪漫烟花 * 项目描述:贴图 * 项目环境:vs2019 * 生成日期:2020-9-7 * 作者所属:追梦 *****************************************/#include<graphics.h>#include<time.h>#include<stdlib.h>#include<math.h>#include<windows.h>#pragma comment(lib,"winmm.lib")#define NUM 10 //烟花弹个数,烟花#<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码网^</strong>define PI 3.1415925//烟花弹struct jet{ int x, y; //烟花弹坐标 int hx, hy; //烟花弹最高点坐标 bool shoot; //烟花弹是否处于发射状态 DWORD t1, t2, dt; //发射时间 引爆时间 间隔时间 IMAGE img[2]; //2张图片 一明一暗 01下标 byte n : 1; //C结构体 位段 //n 变量 1个位 0,1 n++ 0,1,0,1}jet[NUM]; //烟花弹个数//烟花struct Fire{ int x, y; //烟花的坐标 int r; //烟花的半径 int max_r; //烟花的最大半径 int cen_x, cen_y; //中心距左上角的距离 int width, height; //长宽 int xy[240][240]; //重要,像素,矩阵 bool draw; //画出 bool show; //显示 DWORD t1, t2, dt; //发射时间 引爆时间 间隔时间}fire[NUM];