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 database1(int a);
void database2(int a);
void database3(int a);
void database4(int a);
void welcome1(int a);
void welcome();
void init(int i);
void loadimages();
void choice(DWORD& t1);
void shoot();
void Show(DWORD* pMem);
void delay(int a);

int main(int agrv, char* agrc[])
{
	//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);
	welcome1(1);
	int i;
	int j;
	j = 0;
	for (i = 0; i < 36; i++)
	{
			database1(i);
			delay(10000);
			system("cls");
	}
	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 database1(int a)
{
	switch (a)
	{
		case 1:
		{
			printf("春");
		}
		break;
		case 2:
		{
			printf("节");
		}
		break;
		case 3:
		{
			printf("快");
		}
		break;
		case 4:
		{
			printf("乐");
		}
		break;
		case 5:
		{
			printf("H");
		}
		break;
		case 6:
		{
			printf("a");
		}
		break;
		case 7:
		{
			printf("p");
		}
		break;
		case 8:
		{
			printf("p");
		}
		break;
		case 9:
		{
			printf("y");
		}
		break;
		case 10:
		{
			printf(" ");
		}
		break;
		case 11:
		{
			printf("S");
		}
		break;
		case 12:
		{
			printf("p");
		}
		break;
		case 13:
		{
			printf("r");
		}
		break;
		case 14:
		{
			printf("i");
		}
		break;
		case 15:
		{
			printf("n");
		}
		break;
		case 16:
		{
			printf("g");
		}
		break;
		case 17:
		{
			printf(" ");
		}
		break;
		case 18:
		{
			printf("F");
		}
		break;
		case 19:
		{
			printf("e");
		}
		break;
		case 20:
		{
			printf("s");
		}
		break;
		case 21:
		{
			printf("t");
		}
		break;
		case 22:
		{
			printf("i");
		}
		break;
		case 23:
		{
			printf("v");
		}
		break;
		case 24:
		{
			printf("a");
		}
		break;
		case 25:
		{
			printf("l");
		}
		break;
		case 26:
		{
			printf("春节快乐");
		}
		break;
		case 27:
		{
			printf("Happy");
		}
		break;
		case 28:
		{
			printf("Spring");
		}
		break;
		case 29:
		{
			printf("Festival");
		}
		break;
		case 30:
		{
			printf("春节快乐\n");
			printf("Happy Spring Festival\n");
		}
		break;
		case 31:
		{
			database2(31);
		}
		break;
		case 32:
		{
			database2(32);
		}
		break;
		case 33:
		{
			database2(33);
		}
		break;
		case 34:
		{
			database2(34);
		}
		break;
		case 35:
		{
			database2(35);
		}
		break;
	}
}

void database2(int a)
{
	switch (a)
	{
		case 31:
		{
		  //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 32:
		{
		  //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 33:
		{
			//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 34:
		{
			//不用                                             不用 
		  //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 35:
		{
			printf("happy spring festival!");
		}
	}
}

void welcome1(int a)
{
	int i;
	int j;
	for (i = 0; i < 100; i++)
	{
		for (j = 0; j < 20; j++)
		{
			printf("\n");
		}
		printf("                                        this program is powered by lry\n");
		printf("                                         all rights reserved 2020~2021\n");
		printf("                                          begin to start this project\n");
		printf("                                              rate of progress:%d%c\n", i, '%');
		system("cls");
	}
}
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 delay(int a)
{
	while (a)
	{
		a--;
	}
}


小伙伴们快去试试吧!!
c语言炫酷代码,C语言系列,c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-771932.html

到了这里,关于C语言系列之炫酷新年烟花秀(带新年祝福)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】python新年烟花代码【附源码】

             欢迎来到英杰社区 https://bbs.csdn.net/topics/617804998          新年的钟声即将敲响,为了庆祝这个喜庆的时刻,我们可以用 Python 编写一个炫彩夺目的烟花盛典。本文将详细介绍如何使用 Pygame 库创建一个令人惊叹的烟花效果。            (1)、导入必要的模块

    2024年02月02日
    浏览(43)
  • 用HTML语言制作一个非常浪漫的生日祝福网,手把手教你制作炫酷生日祝福网页

    明天就是女朋友的生日了, 是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧! HTML生日祝福网页制作(粉色主题)程序员专属生日表白网站 💬 注:以下代码为部分演示,如需完整

    2024年02月16日
    浏览(57)
  • 逢年过节就拿出这些代码,Python 制作一个炫酷烟花秀

    已经2023年了 ,到了这个时间点,部分小伙伴已经开始复盘这一年的得与失。比如今年增加了多少技能点,看了多少本书,写了多少篇文章或者年前的小目标实现进度大概多少等等;做一个象征性的年终总结来告别2022,迎接2023: 本篇文章,带大家用 Python 制作一个炫酷烟花秀

    2024年02月03日
    浏览(42)
  • 新年烟花python(附源码)

    2024年02月04日
    浏览(47)
  • 网页炫酷特效拿来即可用(看板娘&鼠标点击&炫酷登录页面&樱花特效&生日祝福&彩虹屁)

    作为一个乐于分享知识的程序员来说,博客必不可少。 在制作博客的过程中,改前端改得让人不言而喻🤡 其次,为了大伙们不步我后尘,给大家陆续分享出来,如果觉得有帮助可以 点赞收藏 支持一下,如果能 关注 一下就再好不过了ヾ(≧▽≦*)o,之后还会分享许多内容,

    2024年02月09日
    浏览(59)
  • c语言-烟花代码

    这个简单的烟花代码会模拟一个烟花爆炸的效果。它会生成一定数量的粒子,每个粒子具有随机的水平速度和垂直速度。它会在屏幕上打印出每个粒子在不同时间点的位置,并且每隔50毫秒更新一次位置。

    2024年02月02日
    浏览(44)
  • 写一个烟花代码C语言

    好的,这是一个简单的烟花效果的 C 语言代码。首先,你需要在代码中包含头文件 graphics.h ,这是一个图形库,提供了在屏幕上绘制图形的函数。 #include stdio.h #include graphics.h #include time.h int main() { // 初始化图形环境 int gd = DETECT, gm; initgraph(gd, gm, \\\"\\\");

    2024年02月08日
    浏览(43)
  • C语言烟花代码—兔年顶呱呱

            废话不多说,直接上码 代码,歌曲,烟花图片都在压缩包里 链接: https://pan.baidu.com/s/1_459s0fFCAX1DcQa_BnHMQ?pwd=qw12  提取码: qw12 要看效果的也可以看我抖音: 1210246294    运行效果如下:

    2024年02月07日
    浏览(50)
  • 【Python炫酷系列】黑客帝国代码雨(完整代码)

    python3.11.4及以上版本 PyCharm Community Edition 2023.2.5 pyinstaller6.2.0 ( 可选 ,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~) 【注】 python环境搭建请见:https://want595.blog.csdn.net/article/details/134586653 pyinstaller使用教程见:ht

    2024年03月15日
    浏览(54)
  • 【精选】各种节日祝福(C语言,可修改),Easyx图形库应用+源代码分享

    博主:命运之光✨✨ 专栏:Easyx图形库应用📂 目录 ✨一、程序展示  范例一:❤新年祝福❤ 范例二:❤母亲节祝福❤ ✨二、项目环境 简单介绍一下easyx图形库应用 Easyx图形库 ✨三、运行效果展示(视频) ✨四、程序源代码分享 🍓文字可以自由输入(●\\\'◡\\\'●)🍓 🍓输入格

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包