打飛機(jī)游戲是一款非常經(jīng)典的游戲,大家想知道用c++語言怎么實(shí)現(xiàn)呢?這里小編就給大家?guī)鞢++打飛機(jī)的游戲源代碼,詳細(xì)會(huì)對(duì)大家學(xué)習(xí)c++語言有很大的幫助。

C++打飛機(jī)的游戲代碼
void TitleDisplay(void) //顯示序
{
HRESULT ddrval;
//計(jì)算圖象卷軸的坐標(biāo)數(shù)據(jù)
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);
}
//清屏后臺(tái)緩沖區(qū)
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到后臺(tái)緩沖區(qū)
lpDDSBack->Blt(&frontR1, lpDDSPic6, &backR1, DDBLT_WAIT, NULL);
//將前景圖象透明Blit到后臺(tái)緩沖區(qū)
lpDDSBack->Blt(&frontR2, lpDDSPic4, &backR2,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
lpDDSBack->Blt(&frontR3, lpDDSPic5, &backR3,DDBLT_WAIT|DDBLT_KEYSRC,NULL);
}
else ///移動(dòng)開始
{
//清屏后臺(tái)緩沖區(qū)
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 );//調(diào)用換頁函數(shù)
if( ddrval == DD_OK )//成功則退出while循環(huán)
break;
if( ddrval == DDERR_SURFACELOST )//如果頁面丟失,則恢復(fù)頁面
{
if(!InitThread())break; //重新提取背景
ddrval = lpDDSPrimary->Restore(); //恢復(fù)主頁面
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic1->Restore(); //恢復(fù)離屏頁面1
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic4->Restore(); //恢復(fù)離屏頁面4
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic5->Restore(); //恢復(fù)離屏頁面5
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic6->Restore(); //恢復(fù)離屏頁面6
if(ddrval!=DD_OK)
break;
ddrval=lpDDSPic8->Restore(); //恢復(fù)離屏頁面8
if(ddrval!=DD_OK)
break;
}
if( ddrval != DDERR_WASSTILLDRAWING)
break;
}
}
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版








小學(xué)教師工作包資料(班主任必備)壓縮包資源
25春 七彩課堂部編版語文九年級(jí)下冊(cè)教學(xué)資源包【課件+教案】
25春七彩課堂統(tǒng)編版語文三年級(jí)下冊(cè)教學(xué)課件資源包完整版
七彩課堂教科版科學(xué)課件1-6年級(jí)教學(xué)資源包電子版
24年秋七彩課堂英語人教版九年級(jí)上冊(cè)教學(xué)資源包【課件+教案】
七彩課堂人教版英語八年級(jí)上冊(cè)課件PPT【教案】
24年秋初中英語人教版七年級(jí)上冊(cè)教學(xué)資源包【課件+教案】
2025秋七彩課堂人教PEP版英語四年級(jí)上冊(cè)教學(xué)資源包最新版
24秋初中數(shù)學(xué)人教版九年級(jí)上冊(cè)教學(xué)資源包[課件+教案]
24秋七彩課堂人教版數(shù)學(xué)八年級(jí)上冊(cè)教學(xué)資源包最新版
24秋七彩課堂人教版數(shù)學(xué)七年級(jí)上冊(cè)課件PPT電子版
24秋七彩課堂統(tǒng)編版語文九年級(jí)上冊(cè)課件PPT最新版
24秋七彩課堂統(tǒng)編版語文八年級(jí)上冊(cè)教學(xué)資源包【課件+教案】
2023年秋七彩課堂語文課件1-6年級(jí)上冊(cè)合集【課件+教案】
2024嘉善空中課堂客戶端1.7.73 官方版
智慧中小學(xué)電腦版1.2.9 官方版
優(yōu)巡監(jiān)考系統(tǒng)電腦客戶端v1.1.1_t 官方版
天一閱卷系統(tǒng)客戶端v3.5 官方PC版
人教教學(xué)易電腦客戶端1.5.0.13 官方版
國家中小學(xué)智慧教育平臺(tái)電子教材(中小學(xué)電子教材)可打印版
高途課堂pc客戶端下載8.9.1 簡體中文官方版
豌豆思維PC客戶端2.17.0 電腦版
學(xué)而思網(wǎng)校電腦客戶端v9.71.2 官方免費(fèi)版
掌門優(yōu)課學(xué)生客戶端1.1.12 學(xué)生版
拓課云課堂客戶端4.1.9 官方最新版
鯨魚外教培優(yōu)客戶端(鯨魚學(xué)堂)2.2.5pc版
有道云教室教師端2.1.1 電腦版
好分?jǐn)?shù)輔導(dǎo)電腦版2.1.79.3 官方最新版
學(xué)霸君有課客戶端1.0.10.0 pc版
猿輔導(dǎo)老師版客戶端5.60.0官方免費(fèi)版


MathType7.4.8.0破解版簡體中文版
七彩課堂部編版一年級(jí)上冊(cè)語文課件 教案202
教育裝備伴隨式大數(shù)據(jù)管理系統(tǒng)小助教1.0 最
王安石元日ppt課件【共19頁】免費(fèi)版
一個(gè)人的遭遇教學(xué)課件免費(fèi)下載【高中語文】
小升初數(shù)學(xué)試卷合集【3份】word免費(fèi)版
湖南行政執(zhí)法考試成績查詢軟件1.0 網(wǎng)頁版
專技天下電腦版3.0.0 免費(fèi)版
25春 七彩課堂人教版數(shù)學(xué)一年級(jí)下冊(cè)教學(xué)課件
圓夢(mèng)中國觀后感2017精選版