最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【2021跨年】最浪漫的煙花程序,送給新的一年的自己!(源碼)

2020-12-31 22:26 作者:C語(yǔ)言編程__Plus  | 我要投稿

祝愿大家,在新的一年里面也要更加好哦!

以下就是我們的新年煙花程序源碼了!大家一起來(lái)學(xué)習(xí)吧~


源碼分享:

#include<stdio.h>

#include<math.h>

#include<time.h>

#include<conio.h>

#include<graphics.h> //自己安裝了才有

#include<mmsystem.h>

#pragma comment(lib,"winmm.lib")//多媒體設(shè)備接口庫(kù)文件

#define PI 3.1415

#define NUM 13 //煙花彈數(shù)量

#define WIDTH 960

#define HEIGHT 640

/*

開(kāi)發(fā)環(huán)境:vs2019+easyx

*/

struct Fire

{

int x, y;

int cen_x, cen_y; //中心點(diǎn)坐標(biāo)

int r; //當(dāng)前綻放半徑

int max_r; //最大綻放半徑

int width, height;

DWORD pixel[240][240]; //圖片像素?cái)?shù)組

bool isShow; //煙花是否準(zhǔn)備好了

bool isDraw; //是否繪制煙花

}fire[NUM];

struct Jet? //煙花彈

{

int x, y; //坐標(biāo)

int hx, hy; //最高點(diǎn)的坐標(biāo)

bool isLaunch; //煙花彈是否在發(fā)射中

IMAGE img[2];

byte n : 1; //位段? 0 1 0 1 0 1 0 1 0 1

}jet[NUM];

void welcome()

{

mciSendString(L"open ./res/小幸運(yùn).mp3", 0, 0, 0);

mciSendString(L"play ./res/小幸運(yùn).mp3", 0, 0, 0);

for (int i = 0; i < 50; i++)

{

//清除屏幕

cleardevice();

int x = 500 + 180 * sin(2 * PI / 60 * i);

int y = 200 + 180 * cos(2 * PI / 60 * i);

//設(shè)置字體樣式

settextstyle(i, 0, L"楷體");

settextcolor(RGB(0, 202, 0));

setbkmode(TRANSPARENT);

outtextxy(x, y, L"浪漫表白程序");

Sleep(20);

}

_getch();//按任意鍵繼續(xù)

cleardevice();

settextstyle(25, 0, L"楷體");

outtextxy(350, 100, L"親愛(ài)的XXX");

outtextxy(350, 150, L"自從第一天看見(jiàn)你");

outtextxy(350, 200, L"我的心就不能自已");

outtextxy(350, 250, L"不管天上地下都想看見(jiàn)你");

outtextxy(350, 300, L"...");

outtextxy(350, 350, L"...");

outtextxy(450, 400, L"--最喜歡你的我");

}

void InitData(int i);

void loadImg()

{

//初始化綻放效果

IMAGE bloomImg,tImg;

loadimage(&bloomImg, L"./res/flower.jpg", 3120, 240);

for (int i = 0; i < NUM; i++)

{

InitData(i);

SetWorkingImage(&bloomImg);

getImage(&tImg, i * 240, 0, 240, 240);

SetWorkingImage(&tImg);

for (int a = 0; a < 240; a++)

{

for (int? b = 0; b < 240; b++)

{

fire[i].pixel[a][b] = getpixel(a, b);

}

}

}

//初始化煙花彈

IMAGE jetImg;

loadimage(&jetImg, L"./res/launch.jpg", 200, 50);

SetWorkingImage(&jetImg);

for (int i = 0; i < NUM; i++)

{

int n = rand() % 5;

getImage(&jet[i].img[0], n*20, 0, 20, 50);

getImage(&jet[i].img[1], n*20 + 100, 0, 20, 50);

jet[i].isLaunch = false;

}

SetWorkingImage();

}

void InitData(int i)

{

fire[i].cen_x = 120;

fire[i].cen_y = 120;

fire[i].max_r = 120;

fire[i].r = 0;

fire[i].width = 240;

fire[i].height = 240;

fire[i].isDraw = false;

fire[i].isShow = false;

}

//產(chǎn)生煙花彈

void createJet()

{

int i = rand() % NUM;//[0~13)

if (jet[i].isLaunch == false)

{

jet[i].x = rand() % (WIDTH-20);

jet[i].y = rand() % 100 + HEIGHT;

jet[i].hx = jet[i].x;

jet[i].hy = rand() % (HEIGHT / 3 * 2);

jet[i].isLaunch = true;

}

}

//發(fā)射煙花彈

void launch()

{

for (int i = 0; i < NUM; i++)

{

if (jet[i].isLaunch)

{

putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n],SRCINVERT);

//判斷是否達(dá)到最高點(diǎn)了

if (jet[i].y > jet[i].hy)

{

jet[i].y -= 5;

jet[i].n++;

}

putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT);

if (jet[i].y <= jet[i].hy)

{

jet[i].isLaunch = false;

//可以開(kāi)始放煙花了

fire[i].x = jet[i].x;

fire[i].y = jet[i].y;

fire[i].isShow = true;

}

}

}

}

void bloom(DWORD *pMem)

{

for (int i = 0; i < NUM; i++)

{

if (fire[i].isShow)

{

if (fire[i].r < fire[i].max_r)

{

fire[i].r++;

fire[i].isDraw = true; //可以開(kāi)始繪制煙花了

}

if (fire[i].r >= fire[i].max_r)

{

InitData(i);

}

}

if (fire[i].isDraw)

{

//求當(dāng)前半徑下,圓上的每個(gè)點(diǎn)對(duì)于的弧度

for (double a = 0; a <= 2 * PI; a += 0.01)

{

int img_x = fire[i].cen_x + fire[i].r * cos(a);//求出圓上的每個(gè)點(diǎn)的坐標(biāo)

int img_y = fire[i].cen_y + fire[i].r * sin(a);

if (img_x > 0 && img_x < fire[i].width && img_y>0 && img_y < fire[i].height)

{

//針對(duì)現(xiàn)在的綻放點(diǎn),對(duì)應(yīng)的屏幕坐標(biāo)

int win_x=? fire[i].x + fire[i].r * cos(a);

int win_y = fire[i].y + fire[i].r * sin(a);

if (win_x > 0 && win_x < WIDTH && win_y>0 && win_y < WIDTH)

{

pMem[win_y * WIDTH + win_x] = BGR(fire[i].pixel[img_x][img_y]);

}

}

}

}

}

}

int main()

{

//創(chuàng)建窗口

initgraph(960, 640);

//設(shè)置隨機(jī)數(shù)種子

srand((unsigned)time(NULL)+clock());

welcome();

loadImg();

DWORD* pMem = GetImageBuffer(); //獲取窗口的內(nèi)存指針

while (1)

{

for (int? i = 0; i < WIDTH; i++)

{

for (int k = 0; k < 4; k++)

{

int x = rand() % WIDTH;

int y = rand() % HEIGHT;

if (y < HEIGHT)

{

pMem[y * WIDTH + x] = BLACK;

}

}

}

createJet();

launch();

bloom(pMem);

Sleep(10);

}

closegraph();

return 0;

}

以上就是今日的全部分享,happy new year!

另外如果你想更好的提升你的編程能力,學(xué)好C語(yǔ)言C++編程!彎道超車(chē),快人一步!筆者這里或許可以幫到你~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!


【2021跨年】最浪漫的煙花程序,送給新的一年的自己?。ㄔ创a)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
南康市| 深泽县| 垣曲县| 石河子市| 金昌市| 洪湖市| 德钦县| 濮阳市| 曲水县| 通河县| 寻乌县| 嵩明县| 万宁市| 新蔡县| 友谊县| 长海县| 济阳县| 永济市| 泗阳县| 唐山市| 张家港市| 肇源县| 封丘县| 家居| 桓仁| 西峡县| 昌平区| 阳城县| 丹东市| 常州市| 定边县| 嘉善县| 宁德市| 高雄市| 寿宁县| 沛县| 黄浦区| 巴塘县| 卓尼县| 梨树县| 吉木萨尔县|