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写上如下代码:
/****************************************************
*****************************************************
****************表白浪漫烟花项目开发********************
****************主讲人:三黑之毅************************
****************最后修改:3月20日****************
*****************************************************
****************************************************/
#include"main.h"
intmain()
{
//打开一个窗口100
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,