打飞机游戏是一款非常经典的游戏,大家想知道用c++语言怎么实现呢?这里小编就给大家带来C++打飞机的游戏源代码,详细会对大家学习c++语言有很大的帮助。
voidTitleDisplay(void) //显示序
{
HRESULT ddrval;
//计算图象卷轴的坐标数据
RECTbackR1,frontR1,backR2,frontR2,backR3,frontR3;
staticintn=0;
staticintx1=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
HDChdc;
chartemp[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;
}
}
展开内容
7.8/556.6M
诡异医院是一款很好玩的生存塔防游戏。类似猛鬼宿舍的玩法,玩家将和其他玩家开黑匹配,在这里猛鬼潜入一座诡异的医院之中,你需要不断的升级你的宿舍,抵御猛鬼的进攻。这...
9.7/1,338.8M
CGA赛事平台app是一款专为电子竞技打造的赛事资讯平台,用户通过这款软件能随时随地了解最新赛事详情,还能同步观看比赛直播,还支持一键登录,方便用户参赛,如果你...
8.6/571.3M
如何训练员工的职业心态呢?这是不少从事企业管理的朋友都考虑过或是正在考虑的问题,本节内容东坡小编为大家整理带来的是一份员工职业心态培训ppt课件,如果你正在考虑...
8.8/1,036.0M
旋转视觉赛APP是一款提供多样化休闲娱乐游戏的移动应用,包含翻牌游戏、指尖转盘和大冒险转盘等多种简单易上手的游戏模式,支持自定义设置转盘和翻牌样式,所有功能完全...
8.4/651.2M
DirectX修复工具(DirectXRepair)是一款DirectX运行库修复软件,专为0xc000007b错误进行大量优化,解决0xc000007b错误的...
9.4/166.3M
王者荣耀官方资讯攻略app--王者营地,你可以在这里是看到最新的资讯以及赛事加上一些战绩,你都是可以直接的免费的看到,看到你需要看到的事情,让你玩的更加开心!王...
7.8/1,189.6M
一款非常实用的手电筒,设计简洁,使用方法一目了然,左侧为手电筒的开关设置,右侧为屏幕灯的开关设置,多种模式供您选择,效果极佳版本记录2018-05-08版本:1...
8.4/1,804.1M
顾名思义,这是一款可以自由开黑语音的软件,软件支持多种游戏,如王者荣耀、刺激战场等,并提供在线变声功能。有些app还内置了李云龙、周仙人等特色语音包,让玩家在游...
7.7/1,001.7M
立方体游乐场游戏是一款画面为3D立体的游乐场模拟游戏,玩家可以收集不同的资源来建造立方体建筑,打造自己的专属乐园,游戏的场景丰富,充满了无限的可能性,玩家可以努...
8.9/729.1M
vivo原子随身听APP(OriginPlayer)是一个听歌小组件,这个是vivo系统中提取出的,也是支持很多其他平台的,可以在其他的音乐软件上使用的,而且也...
7.9/1,720.8M
崭新印通拼版软件(ImageHarbor)是一款功能强大、专业实用的印刷拼版软件,此款软件主要应用于印刷行业,能够帮助用户拼版布局印刷品,有需要的欢迎下载使用。...
9.8/855.0M
捞月狗app苹果版是一款专用战绩查询软件,目前已经有四千万玩家选择捞月狗app查询战绩,软件也为玩家提供最新的游戏更新、资讯等内容,让玩家第一时间了解最新的游戏...
8.7/1,494.2M
994车主服务app是一款为车主提供实时路况的手机软件,还具有导航的功能,可提醒车主行车安全,欢迎来下载使用!994车主服务app介绍994车主服务是聊城交通广...
7.7/1,967.2M
lol动态壁纸超级炫酷,想要在手机上设置lol手机动态壁纸吗?快来下载小编提供的lol动态壁纸手机版吧,可以帮你轻松设置急个毛的lol动态壁纸!lol动态壁纸手...
9.1/1,106.1M
奥特曼之格斗超人九游版的最新版本,可以免费下载到哦。奥特曼题材的动作游戏,奥特曼之格斗超人还原了奥特曼角色,酷炫的动作,巧妙的操作,各种副本挑战,开启奥特曼新的...
9.1/1,395.4M
掌上远成app是一款快运软件,他是有远成快运所推出,你可以通过掌上远成app随时随地的查看订单情况,方便你的操作,感兴趣的可以使用!掌上远成app介绍掌上远成物...
8.2/1,666.3M
百锻将棋要怎样才能打开?想要在手机上体验百锻将棋,当然是需要先在本页面下载百锻将棋app,然后就能在线和ai智能机器人或者邀请好友进行对战了,里面带有新手教程,...
9.2/285.9M
康宁医药app,手机购药在线商城,提供中成药、医疗器械、中药养生,化学药品等,家中常备药几乎都可以找到;价格优惠,质量有保障!康宁医药介绍康宁医药商城汇集全国大...
8.7/1,686.0M
这款游戏是非常不错的答题游戏,可以轻松进行答题比赛,游戏之中答题采用的是对话形式,通过对话可以轻松进行比赛哦,游戏答题比赛是多样的,超好玩的答题内容可以查看,玩...
9.3/1,224.4M
休闲跳球比赛游戏,LaBalle(跳球)感觉是为手残党打造的,在长立方体上行走,一只手就能控制球跳跃,操作很简单,但获得高分并不容易,喜欢这种休闲刺激玩法的别错...
7.7/1,526.1M
数据同步,意思就是说将数据信息共享同步,那么这款数据同步软件十分的方便啦。软件介绍数据异地同步软件,数据异地备份软件,文件异地同步软件,文件异地备份软件1.同步...
9.6/1,572.4M
我们成为我们所看到的样子是一款很有意义的休闲手游,在游戏中玩家可以随机拍摄路人,然后通过新闻推送给全球观众,从而制造舆论,制造“流行”,最终所有人都会疯狂,感兴...
8.3/1,032.8M
五笔打字通是专为五笔学习的朋友设计的练习程序,它设计傻瓜化,不用看说明文档就可以进行操作,它跟市面的上其它五笔学习程序最大的不同还在于它提供了强大的帮助功能,使...
9.8/1,637.8M
聚佳汇团购app是由厦门聚佳汇科技有限公司推出的一款非常好用的团购软件,可以让大家快乐购、轻忪购公司致力于完美打造互联网新零售生态循环系统!软件介绍厦门聚佳汇科...
8.8/812.7M
翱奔企业名录搜索软件是一款专业的企业名录搜索软件。非常不错的哦。有需要的可以来东坡下载使用!翱奔企业名录搜索软件简介翱奔企业名录搜索软件可快速采集信息网站,满足...