打飞机游戏是一款非常经典的游戏,大家想知道用c++语言怎么实现呢?这里小编就给大家带来C++打飞机的游戏源代码,详细会对大家学习c++语言有很大的帮助。

C++打飞机的游戏代码
void TitleDisplay(void) //显示序
{
HRESULT ddrval;
//计算图象卷轴的坐标数据
RECT backR1, frontR1, backR2, frontR2,backR3,frontR3;
static int n=0;
static int x1=0,x2=0,x3=0;
if(x1==310&&bSoundDrive)
{
cDSound.Play(false,1);
}
if(x1<420||x2<640)
{
x1+=1;
if (x1>420) x1=420;
if(x1<200)
{
SetRect(&backR1,0,0,x1,480);
SetRect(&frontR1,640-x1,0,640,480);
}
else
{
SetRect(&backR1,0,0,200,480);
SetRect(&frontR1,640-x1,0,840-x1,480);
}
if(x1>100)
{
x2+=2;
}
if(x2>640)x2=640;
if(x2<220)
{
SetRect(&backR2,0,0,x2,480);
SetRect(&frontR2,640-x2,0,640,480);
SetRect(&backR3,220-x2,0,220,480);
SetRect(&frontR3,0,0,x2,480);
}
else
{
SetRect(&backR2,0,0,220,480);
SetRect(&frontR2,640-x2,0,860-x2,480);
SetRect(&backR3,0,0,220,480);
SetRect(&frontR3,x2-220,0,x2,480);
}
//清屏后台缓冲区
DDBLTFX ddBltFx;
ddBltFx.dwSize = sizeof(DDBLTFX);
ddBltFx.dwFillColor = DDColorMatch(lpDDSBack, RGB(0,0,0));
lpDDSBack->Blt(NULL, NULL, NULL, DDBLT_WAIT | DDBLT_COLORFILL, &ddBltFx);
//将背景图象Blit到后台缓冲区
lpDDSBack->Blt(&frontR1, lpDDSPic6, &backR1, DDBLT_WAIT, NULL);
//将前景图象透明Blit到后台缓冲区
lpDDSBack->Blt(&frontR2, lpDDSPic4, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
lpDDSBack->Blt(&frontR3, lpDDSPic5, &backR3,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
else ///移动开始
{
//清屏后台缓冲区
DDBLTFX ddBltFx;
ddBltFx.dwSize = sizeof(DDBLTFX);
ddBltFx.dwFillColor = DDColorMatch(lpDDSBack, RGB(0,0,0));
lpDDSBack->Blt(NULL, NULL, NULL, DDBLT_WAIT | DDBLT_COLORFILL, &ddBltFx);
SetRect(&frontR1,0,0,640,480);
SetRect(&backR1,0,0,640,480);
lpDDSBack->Blt(&frontR1, lpDDSPic1, &backR1, DDBLT_WAIT|DDBLT_KEYSRC, NULL);
x3+=1;
if(x3<540)
{
SetRect(&backR1,540-x3,0,540,100);
SetRect(&frontR1,0,380,x3,480);
}
else
{
if(x3<640)
{
SetRect(&backR1,0,0,540,100);
SetRect(&frontR1,x3-540,380,x3,480);
SetRect(&backR2,1080-x3,100,540,200);
SetRect(&frontR2,0,380,x3-540,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
if(x3>=640&&x3<1080)
{
SetRect(&backR1,0,0,540-(x3-640),100);
SetRect(&frontR1,100+x3-640,380,640,480);
SetRect(&backR2,1080-x3,100,540,200);
SetRect(&frontR2,0,380,x3-540,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
if(x3>=1080&&x3<1180)
{
SetRect(&backR1,0,0,540-(x3-640),100);
SetRect(&frontR1,100+x3-640,380,640,480);
SetRect(&backR2,0,100,540,200);
SetRect(&frontR2,x3-1080,380,x3-540,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
SetRect(&backR2,540-(x3-1080),0,540,100);
SetRect(&frontR2,0,380,x3-1080,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
if(x3>=1180&&x3<1620)
{
SetRect(&backR1,540-(x3-1080),0,540,100);
SetRect(&frontR1,0,380,x3-1080,480);
SetRect(&backR2,0,100,540-(x3-1180),200);
SetRect(&frontR2,x3-1080,380,640,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
if(x3>=1620&&x3<1720)
{
SetRect(&backR1,0,100,540-(x3-1180),200);
SetRect(&frontR1,100+x3-1180,380,640,480);
SetRect(&backR2,0,0,540,100);
SetRect(&frontR2,x3-1620,380,x3-1080,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
SetRect(&backR2,540-(x3-1620),100,540,200);
SetRect(&frontR2,0,380,x3-1620,480);
lpDDSBack->Blt(&frontR2, lpDDSPic8, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
if(x3>=1719)x3=640;
}
}
lpDDSBack->Blt(&frontR1, lpDDSPic8, &backR1,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
//打印刷新率fps
HDC hdc;
char temp[32];
lpDDSBack->GetDC(&hdc);
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc, RGB(0,255,0));
sprintf(temp, "%d 帧/秒", iFps);
TextOut(hdc, 0, 0, temp, strlen(temp));
lpDDSBack->ReleaseDC(hdc);
// 换页
while( 1 )
{
ddrval = lpDDSPrimary->Flip( NULL, DDFLIP_WAIT );//调用换页函数
if( ddrval == DD_OK )//成功则退出while循环
break;
if( ddrval == DDERR_SURFACELOST )//如果页面丢失,则恢复页面
{
if(!InitThread())break; //重新提取背景
ddrval = lpDDSPrimary->Restore(); //恢复主页面
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic1->Restore(); //恢复离屏页面1
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic4->Restore(); //恢复离屏页面4
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic5->Restore(); //恢复离屏页面5
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic6->Restore(); //恢复离屏页面6
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic8->Restore(); //恢复离屏页面8
if(ddrval!=DD_OK)
break;
}
if( ddrval != DDERR_WASSTILLDRAWING)
break;
}
}
- PC官方版
- 安卓官方手机版
- IOS官方手机版








25春 七彩课堂部编版语文九年级下册教学资源包【课件+教案】
25春七彩课堂统编版语文三年级下册教学课件资源包完整版
七彩课堂教科版科学课件1-6年级教学资源包电子版
24年秋七彩课堂英语人教版九年级上册教学资源包【课件+教案】
七彩课堂人教版英语八年级上册课件PPT【教案】
24年秋初中英语人教版七年级上册教学资源包【课件+教案】
2024秋七彩课堂人教PEP版英语四年级上册教学资源包最新版
24秋初中数学人教版九年级上册教学资源包[课件+教案]
24秋七彩课堂人教版数学八年级上册教学资源包最新版
24秋七彩课堂人教版数学七年级上册课件PPT电子版
24秋七彩课堂统编版语文九年级上册课件PPT最新版
24秋七彩课堂统编版语文八年级上册教学资源包【课件+教案】
2023年秋七彩课堂语文课件1-6年级上册合集【课件+教案】
2024嘉善空中课堂客户端1.7.73 官方版
智慧中小学电脑版1.2.9 官方版
优巡监考系统电脑客户端v1.1.1_t 官方版
日照教育云电脑版1.0.7 安卓版
天一阅卷系统客户端v3.5 官方PC版
人教教学易电脑客户端1.5.0.13 官方版
学思教师用书专用平台电子试卷【支持打印】免费版
国家中小学智慧教育平台电子教材(中小学电子教材)可打印版
高途课堂pc客户端下载8.9.1 简体中文官方版
豌豆思维PC客户端2.17.0 电脑版
学而思网校电脑客户端v9.71.2 官方免费版
掌门优课学生客户端1.1.12 学生版
拓课云课堂客户端4.1.9 官方最新版
鲸鱼外教培优客户端(鲸鱼学堂)2.2.5pc版
有道云教室教师端2.1.1 电脑版
好分数辅导电脑版2.1.79.3 官方最新版
学霸君有课客户端1.0.10.0 pc版
猿辅导老师版客户端5.60.0官方免费版


MathType7.4.8.0破解版简体中文版
25春七彩课堂六年级下册语文ppt课件春季学期
测试驱动开发 by examplepdf 高清中文版
超星课堂电脑版3.0.7 最新版
jquery手册(jquery参考手册)chm 中文版教程
C#教程实用版PDF电子高清版
七彩课堂人教版数学五年级下册教学资源包最
网络工程师试题及答案下载(最新整理版)pdf格
小学二年级下册应用题【300道】最新完整wor