c语言开发的烟花表白程序,C语言实战之浪漫烟花表白程序(2020年十二月整理).doc...

PAGE

PAGE 1

创建win32控制台应用程序,选择空项目。

创建完毕后,右击头文件新建一个头文件(.h)。名字写main.h

然后在源文件新建一个C++文件(.cpp)。名字写main.cpp

如图:

然后在main.h里面写上如下代码:

#include

#include

#include

#include

#include

#include

#pragmacomment(lib,"winmm.lib")

#definePI3.1415926535

#defineNUM13

//烟花弹

structJET

{

intx,y;//坐标

inthx,hy;//最高点坐标

boolshoot;//判断烟花弹是不是发射状态

DWORDt1,t2,dt;//烟花弹发射的速度

IMAGEimg[2];//图片2张一明一暗的两张

byten:1;//结构体位段变量n占用内存的一个位!

}jet[NUM];

//烟花

structFIRE

{

intr;//半径

intmaxr;//最大半径

intx,y;//相对于窗口中心点的坐标

intcenx,ceny;//相对于图片本身中心点的坐标

intwidth,height;

intxy[240][240];//图片保存到一个像素矩阵。

boolshow;//是否绽放

booldraw;//是否绘制

DWORDt1,t2,dt;//爆炸的速度

}fire[NUM];

voidInit(inti);

voidLoad();

voidChose(DWORD&t1);

voidShoot();

voidShow(DWORD*pem);

在main.cpp写上如下代码:

/****************************************************

*****************************************************

****************表白浪漫烟花项目开发********************

****************主讲人:三黑之毅************************

****************最后修改:2019年3月20日****************

*****************************************************

****************************************************/

#include"main.h"

intmain()

{

//打开一个窗口1200800

initgraph(1200,800);

srand((unsignedint)time(NULL));

mciSendString(L"open./fire/千年.mp3aliasbgm",0,0,0);

mciSendString(L"playbgmrepeat",0,0,0);

DWORDt1=GetTickCount();

DWORD*pem=GetImageBuffer();

for(inti=0;i

{

Init(i);

}

Load();

BeginBatchDraw();

while(1)

{

Sleep(10);

for(intclr=0;clr<1000;clr++)

{

for(intj=0;j<2;j++)

{

intpx1=rand()%1200;

intpy1=rand()%800;

if(py1<799)

{

pem[py1*1200+px1]=pem[py1*1200+px1+1]=BLACK;

}

}

}

Chose(t1);

Shoot();

Show(pem);

FlushBatchDraw();

}

return0;

}

//初始化13个

voidInit(inti)

{

//分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离(x、y)两个分量

intr[15]={120,120,155,123,130,147,138,138,130,135,140,132,155,145,124};

intx[15]={120,120,110,117,110,93,102,102,110,105,100,108,110,145,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值