打飞机游戏是一款非常经典的游戏,大家想知道用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;
}
}
展开内容
三国卡牌大战正式版下载-三国卡牌大战百度版1.5 安卓版
谷歌验证器官方app下载-谷歌验证器(Authenticator)7.0 安卓中文版
摸鱼计算器下载-摸鱼计算器app9.0.05 最新版
蝙蝠聊呗iPhone版下载-蝙蝠聊呗苹果版1.0.1 最新ios版
更年期的知识有声书app下载-更年期的知识有声书安卓版1.0.0 免费版
全能证件照app3.1.6 手机版
诸神黄昏海加尔之巅3.6.70地图下载-诸神黄昏海加尔之巅3.6.70正式版【附英雄隐藏密码+攻略】
Hill Snake Racer希尔蛇赛车与厚板虫1.0安卓版
会说话的圣诞老人2.2 官网最新版
天天慧选股app下载-天天慧选股1.8.1 安卓版
神谕幻想海量版下载-神谕幻想送海量充值版1.0送500充
掌上红木家具app1.0安卓版
风之大陆小米服下载-风之大陆小米版1.75.0 礼包版
小米mix2一键抢购软件-小米mix2抢购工具免费版
网站图片批量下载软件下载-网页图片批量下载工具(All Picture Finder)3.0.6 最新免费版
8.0/1,348.2M
星战弹球是一款休闲益智类消除游戏,游戏中玩家需要利用泡泡打败敌人,游戏玩法操作简单,玩法有点类似经典泡泡龙游戏,非常适合打发无聊时光的一款游戏。游戏特色:1、非...
apple支持app官网下载-apple支持app3.0.3 官方苹果版
9.1/928.4M
apple支持是一款非常好用的手机软件,就像它的名字一样,它能够给用户提供更加便捷地售后服务,让用户用的放心,有需要的朋友就来东坡下载吧!apple支持应用简介...
9.5/1,738.9M
智乐卡林巴琴是一款教你怎么弹奏卡林巴拇指琴的学习软件,这里有丰富的相关学习资源,这种小乐器学会了还是很有魅力的,感兴趣的小伙伴快来东坡下载吧!智乐卡林巴琴游戏介...
8.0/911.4M
莘应用是一款可以安装到手表上面的软件商城,你可以在这里下载各种软件以及游戏,在智能手表上就能完成,你可以在智能手表上看小说、看电视、玩游戏、社交等等,满足你生活...
9.2/1,065.2M
素材宝app官网版是一款非常好用的图片编辑软件,该软件的功能主要包含了视频剪辑、调整画布、编辑图片,界面简约却功能强大,照片比例随心调整,画布背景随意切换,感兴...
太空猫进化游戏下载-Space cats太空猫进化安卓版1.5 官方版
7.8/797.5M
太空猫进化是一款非常治愈的休闲益智类游戏,游戏中,玩家需要把两只一模一样的猫咪放在一起,组合成更大的猫咪,解锁新的形象,让你的星球上充满猫咪吧!游戏介绍太空猫进...
9.9/495.5M
粉碎光束是一款非常好玩的休闲游戏,趣味十足节奏快,玩家可以利用光线消灭前进路上的敌人,同时还要避开障碍物,不断的吞噬掉其他的陨石才能成长为一个大星球,你想要挑战...
9.8/848.0M
海马运动app是一款专注于体育运动的教学软件,涵盖了很多的运动健身教学课程,让大家随时都能通过平台轻松的进行相关课程的学习,线上为大家准备了很多的视频课程,讲解...
神途总登录器手机版下载-神途总登录器游戏2.21.20201207 安卓版
8.8/942.1M
2020全新单职业传奇,天天新版本,随时开新区,装备爆一地,神途总登录器游戏,里面有很多的玩家,人人都有怪物打,全靠打公平PK,装备全靠打。神途总登录器游戏介绍...
Bitsum Process Lasso (系统优化)V3.823 多国语言安装版
8.3/690.7M
一款独特的调试级别的系统优化工具,主要功能是动态调整各个进程的优先级并设为合理的优先级类以实现为系统减负的目的,此项特性被 Process ...
三国志吕布传私服下载-三国志吕布传公益服1.3.17安卓最新版
9.6/1,832.2M
三国志吕布传是一款以三国名将吕布为主角而展开的角色扮演战棋游戏。游戏不同于以往的三国游戏,加入了新颖的玩法元素,丰富的游戏剧情,多种关卡等你来挑战。需要运用一定...
7.8/1,094.6M
点点勇者折扣平台是全新的福利版本,蓄势待发,战至终章。这款游戏是一个有着精致画面趣味性十足的塔防策略类游戏,游戏有着多种多样的玩法,还有着吸引人的剧情,搭配各种...
9.8/1,233.5M
中油燃气app是一款生活服务类软件,主要为用户提供燃气充值服务,让用户可以随时给自己加的燃气卡充值,非常方便!中油燃气app介绍“中油燃气”-掌上营业厅,是中油...
9.1/242.7M
你喜欢看小说吗?手机里有多少自己已经下载缓存的小说呢?这里小编推荐的爪牙免费小说app就是一款支持自定义导入自己的小说资源,在线搜索看网络小说的多功能阅读软件,...
原始征途手游折扣平台版本下载-原始征途GM折扣版1.0.99 最新版
9.2/466.6M
原始征途手游折扣平台版版本,是大家很认可,很期待的一款经典征途系列游戏,巨人网络的征途系列手游每一款都很棒,如果之前有玩过绿色征途,征途怀旧版等,那么在原始征途...
u盘容量检测工具下载-u盘容量检测工具(FakeFlashTest)1.0.9 绿色免费版
8.0/1,591.4M
大家平时买的各种移动存储设备,是不是容量都如标称所说的那么大呢?u盘容量检测工具(FakeFlashTest)是一款绿色免费的闪存盘容量检测工具,使用者通过本工...
9.1/447.5M
此款工具是游戏足球经理2014的球探工具v14.2.2版本,工具为中文版,下载后直接解压即可使用。足球经理2014好玩吗足球经理系列这次将游戏的重点放在了对于游...
全球性的网络通信协议(Internet时代新的宠儿)免费下载
9.9/596.0M
WAP(无线通讯协议)是在数字移动电话、互联网或其他个人数字助理机(PDA)、计算机应用乃至未来的信息家电之间进行通讯的全球性开放标准。这一标准的诞生是WAP论...
9.0/1,359.0M
甜狗IM是一款加密聊天软件,甜狗IM让每个人都拥有安全的IM!这款软件具备多媒体分享功能,能够分享图片、音乐、视频等内容。提供阅后即焚功能,让用户可以发送一次性...
9.7/955.0M
掌上石家庄是一款专门为石家庄提供各种便捷生活服务的平台,包括但不限于出行、医疗、商店、天气等方面,向打造石家庄智慧城市进发,感兴趣的小伙伴快来东坡下载吧!掌上石...
新博少儿对弈平台手机版下载-新博少儿对弈平台app5.0.12官方安卓版
9.5/311.5M
新博少儿对弈平台app是一款围棋教学软件,提供了从入门到段位的海量习题,可以和网友进行围棋对战,提高孩子的围棋水品。官方介绍少儿围棋对弈平台是面向学棋儿童,提供...
小小理发师3ios下载-小小理发师3苹果版1.2.3 官方IPhone版
8.8/1,844.3M
小小理发师3ios版是一款很好玩的休闲类游戏,在游戏中,你将扮演一位理发师,你需要为你的小小顾客来进行剪发、设计发型、染头发等玩法,非常的有趣!游戏介绍欢迎使用...
win10分区工具下载-win10分区工具分区助手6.2 官方版
8.5/366.5M
win10分区工具分区助手适合所有的win10的系统免费的使用,功能以及使用起来都是非常的简单的,现在就可以直接的来下载,有什么不懂或者是问题的可以随时的咨询!...
8.0/805.4M
萌娘餐厅2百度版是一款二次元风格的店铺经营类游戏,游戏中玩家将化身为主角,经营这一家属于自己的美食店,你需要收揽资金完善你的店铺设施,吸引更多的顾客光临,并带来...
7.7/731.3M
采用复古的画面,氪金大陆就是一款rpg游戏,游戏的画面还是比较简陋的,你要控制好主角去冒险,不断的冒险战斗提升实力,克服重重的困难。游戏介绍某天,小白还是和平常...