




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
_實 訓 報 告飛機大戰(zhàn)游戲設計與開發(fā)姓名* 專業(yè)名稱: 數(shù)學專業(yè)班 級: * 學 號: *信息科學與工程學院二零一三年十一月-可編輯修改-目 錄1.概述22. 相關技術 22.1獲取矩形區(qū)域函數(shù)22.2添加爆炸效果函數(shù)22.3彈出對話框函數(shù)32.4字體的個性化輸出函數(shù)42.5鍵盤控制戰(zhàn)機位置和發(fā)射子彈的函數(shù)42.6設置定時器42.7雙緩沖技術52.8內(nèi)存釋放技術53.需求分析53.1功能需求分析53.2 數(shù)據(jù)需求分析63.3 行為需求分析64. 總體設計與詳細設計 64.1系統(tǒng)模塊劃分84.2主要功能模塊84.3擴展功能設計思路95. 編碼實現(xiàn) 9 6. 測試情況說明 246.1主要模塊測試情況(白盒) 246.2 主要功能測試情況(黑盒)247. 實訓中遇到的主要問題及解決方法 258. 實訓體會 25 1. 概述飛機大戰(zhàn)游戲是基于Windows桌面的射擊類游戲。做為一個游戲首先要保證游戲本身的規(guī)則,而這個版本的一個重要的功能就是其2D的展現(xiàn)形式。飛機大戰(zhàn)游戲作為PC中一款桌面游戲,界面簡潔流暢、游戲方式簡單,玩起來易于上手。其實現(xiàn)的功能為:實現(xiàn)游戲?qū)ο蟮谋ㄌ匦?、聲音特效、文字提示功能和界面背景,其主要是遵循一定的游戲?guī)則進行游戲。游戲中的主要角色可分為如下幾個基本部分:戰(zhàn)機、敵機、戰(zhàn)機的導彈、敵機的子彈。其主要遵循的游戲規(guī)則為:戰(zhàn)機數(shù)量為1;由玩家通過鍵盤控制(方向鍵控制位置、空格鍵發(fā)射導彈)戰(zhàn)機;導彈釋放存在間隔,有一定的運行速度;導彈遇到敵機發(fā)生爆炸,敵機被炸毀,玩家得分;由計算機控制敵機自動向戰(zhàn)機發(fā)動攻擊;敵機數(shù)量隨機,計算機生成敵機時隨機選擇位置;敵機從游戲區(qū)域的上下兩端進入;敵機行駛期間,不左右移動,不反向移動;敵機發(fā)射炸彈對戰(zhàn)機進行攻擊,運行線路為直線,方向為從下至上,或從下至上,不可左右移動,敵機炸彈擊中戰(zhàn)機,戰(zhàn)機生命值減1。該游戲有關卡,戰(zhàn)機生命值減為0,游戲結束,選擇是否重新開始;戰(zhàn)機仍有生命值時,并且得到要求的分數(shù)可進入下一關。2. 相關技術此次實訓的飛機大戰(zhàn)游戲其中的技術主要就是一些函數(shù)(獲取矩形區(qū)域函數(shù)、添加爆炸效果函數(shù)、彈出對話框函數(shù)、字體的個性化輸出函數(shù)、鍵盤控制戰(zhàn)機位置和發(fā)射子彈的函數(shù))、設置定時器、內(nèi)存釋放和雙緩沖技術。2.1獲取矩形區(qū)域函數(shù)CRect CBomb:getRect(void)return CRect(CPoint(Pos.x,Pos.y),CPoint(Pos.x+55,Pos.y+20);CRect bombRect = bomb-getRect();CRect CEnemy:getRect(void)return CRect(CPoint(Pos.x,Pos.y),CPoint(Pos.x+35,Pos.y+35);CRect enemyRect = enemy-getRect();CRect tempRect;tempRect.IntersectRect(&bombRect,enemyRect)/判斷兩個矩形是否有交接2.2添加爆炸效果函數(shù)PlaySound(LPCTSTR)IDR_WAVE2,AfxGetInstanceHandle(),SND_RESOURCE|SND_ASYNC);/此函數(shù)用于將ID為IDR_WAVE1的音頻在執(zhí)行此語句時進行播放。2.3彈出對話框函數(shù)if(AfxMessageBox(LGAME OVER!重新開始?,MB_YESNO)=1)/清空敵機鏈表ListEnemy1.RemoveAll();ListEnemy2.RemoveAll();/清空敵機炸彈鏈表ListBall1.RemoveAll();ListBall2.RemoveAll();/清空戰(zhàn)機子彈鏈表ListBomb1.RemoveAll();ListBomb2.RemoveAll();/清空爆炸鏈表ListExplosion.RemoveAll();/添加新的戰(zhàn)機對象/*myplane = new CMyPlane;*/myscore=0;lifeNum = 20;SetTimer(1,100,NULL);/ifelseexit(1);/此函數(shù)主要是彈出對話框供用戶進行選擇,當用戶點擊確定按鈕時執(zhí)行此函數(shù)的內(nèi)的語句進行繼續(xù)運行。2.4字體的個性化輸出函數(shù)HFONT font;font=CreateFont(20,10,0,0,0,0,0,0,0,0,0,100,10,0);MemDC.SelectObject(font);CString str;MemDC.SetTextColor(RGB(239,7,7);MemDC.SetBkColor(RGB(0,0,0);str.Format(_T(游戲得分:%d),myscore);MemDC.TextOut(10,10,str);str.Format(_T(剩余生命:%d),lifeNum);MemDC.TextOut(10,30,str);str.Format(_T(當前關卡:%d),passnum);MemDC.TextOut(10,50,str);2.5鍵盤控制戰(zhàn)機位置和發(fā)射子彈的函數(shù)if (GetKeyState(VK_LEFT)rect.left)myplane.move(1);if (GetKeyState(VK_RIGHT)0)if(myplane.Pos.xrect.right-50)myplane.move(2);if (GetKeyState(VK_UP)rect.top)myplane.move(3);if (GetKeyState(VK_DOWN)0)if(myplane.Pos.yrect.bottom-50)myplane.move(4);if (GetKeyState(VK_SPACE)SetTimer(1,100,0); /設置每100毫秒刷新一次2.7雙緩沖技術關于雙緩沖技術主要就是利用緩存的原理進行將所有的東西都先存在一個緩沖得虛擬的區(qū)域,然后再一次性的將所有的虛擬緩存中的東西都放入實在的存儲器中。/定義一個位圖對象CBitmap MemBitmap;CDC MemDC;/這時還不能繪圖,因為沒有位圖的設備描述表是不能繪圖的/只有選入了位圖的設備描述表才有地方繪圖,畫到指定的位圖上MemDC.CreateCompatibleDC(pDC);/下面建立一個與屏幕設備描述表(或者內(nèi)存設備描述表)兼容的位圖MemBitmap.CreateCompatibleBitmap(pDC,rect.right,rect.bottom);CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);/將位圖選入到內(nèi)存設備描述表MemDC.StretchBlt(0,0,rect.Width(),rect.Height(),&cdc_BackGround,0,0,bimap2.bmWidth,bimap2.bmHeight,SRCCOPY);/繪圖完成后的清理pDC-BitBlt(rect.left,rect.top,rect.right,rect.bottom,&MemDC,0,0,SRCCOPY);MemBitmap.DeleteObject();MemDC.DeleteDC();2.8 內(nèi)存釋放技術在此次實訓項目中有太多的對象的生成和運用,造成了內(nèi)存的極度的緊張,當游戲進行到一定的程度的時候就會出現(xiàn)內(nèi)存溢出現(xiàn)象。解決此問題的技術就是內(nèi)存釋放。內(nèi)存釋放技術的實現(xiàn)主要是通過釋放各個滿足一定條件的對象和鏈表來實現(xiàn)的,/爆炸后刪除子彈ListBomb1.RemoveAt(bombTemp);delete bomb;/刪除敵機ListEnemy1.RemoveAt(enemyTemp);delete enemy;3. 需求分析3.1功能需求分析游戲基本規(guī)則飛機對戰(zhàn)規(guī)則游戲特效界面背景特效游戲?qū)ο筇匦曇籼匦淖痔崾?.2數(shù)據(jù)需求分析 戰(zhàn)機數(shù)量為1,敵機數(shù)量隨機隨機產(chǎn)生,當戰(zhàn)機被擊中時生命值減1,戰(zhàn)機與敵機相撞生命值減1,戰(zhàn)機擊中敵機分數(shù)加1,戰(zhàn)機生命值減到0時,游戲結束,生命值大于0并且分數(shù)到達一定要求時進入下一關。上方敵機、下方敵機、上方敵機的炸彈、下方敵機的炸彈、戰(zhàn)機的兩排導彈均以鏈表存儲。當戰(zhàn)機與敵機相撞時敵機從該鏈表刪除,導彈擊中敵機時,敵機從該鏈表刪除,導彈從該鏈表刪除。3.3行為需求分析戰(zhàn)機上下移動,通過鼠標或鍵盤控制位置,空格鍵發(fā)射導彈;敵機出現(xiàn)位置隨機,從上方出現(xiàn),或從下方出現(xiàn),發(fā)射子彈攻擊戰(zhàn)機,敵機可以與戰(zhàn)機相撞。當戰(zhàn)機生命值為0時,提示游戲結束是否進入下一關,當分數(shù)值到達一定要求時提示恭喜過關是否進入下一關。4. 總體設計與詳細設計總體設計主要課將其分為兩大部分:規(guī)則子系統(tǒng),游戲?qū)ο笞酉到y(tǒng)。系統(tǒng)的總體結構圖如下:規(guī)則子系統(tǒng)主要是實現(xiàn)飛機大戰(zhàn)各項游戲規(guī)則。實現(xiàn)需求中的游戲規(guī)則,組成結構圖如下:主要是實現(xiàn)敵機戰(zhàn)機的攻擊和反攻的游戲規(guī)則等來實現(xiàn)計算機方和玩家進行對戰(zhàn)。1、主要的攻擊規(guī)則如下:1)、敵機可在戰(zhàn)機的上方或者下方進行將子彈進行射向戰(zhàn)機,同時戰(zhàn)機也可根據(jù)玩家的指示進行向上或者向下進行發(fā)射導彈進行反攻。2)、攻擊時發(fā)出聲音。2、主要的碰撞規(guī)則如下:1)、導彈或者子彈本身的矩形區(qū)域和敵機或者戰(zhàn)機的矩形區(qū)域相交時,表示其相互發(fā)生碰撞表示其相互爆炸。根據(jù)實戰(zhàn)規(guī)則銷毀游戲?qū)ο蟆?)、戰(zhàn)機生命為0,戰(zhàn)機被炸,戰(zhàn)機被銷毀,游戲結束。3)、敵機或者子彈被炸毀,將其進行銷毀同時進行分數(shù)的相應的增加,并且出現(xiàn)文字提示。4)、爆炸時發(fā)出聲音。3、主要時間控制規(guī)則如下:1)、當游戲的持續(xù)時間超過特定的時間,游戲結束,出現(xiàn)文字提示。2)、當游戲的關卡改變時進行游戲持續(xù)時間的一個相應的改變。游戲?qū)ο笞酉到y(tǒng)主要包括:應用程序?qū)ο蠛陀螒驅(qū)ο?、應用程序?qū)ο螅?)、游戲程序的加載2)、游戲?qū)ο蟮睦L制3)、游戲規(guī)則的調(diào)用4)、玩家鍵盤鼠標事件的獲取5、游戲?qū)ο螅?)、各游戲?qū)ο蟮膱D像加載2)、各游戲?qū)ο蟮馁N圖3)、各游戲?qū)ο蟮奈恢么鎯︻悎D如下:4.1 系統(tǒng)模塊劃分模塊名稱功能簡述應用程序?qū)ο笥螒虺绦虻募虞d、游戲?qū)ο蟮睦L制、游戲規(guī)則的調(diào)用、玩家的鍵盤事件獲取游戲?qū)ο蟾鱾€游戲?qū)ο蟮某橄蟾割悜?zhàn)機對象戰(zhàn)機類敵機對象敵機類導彈對象導彈類炸彈對象炸彈類爆炸對象爆炸類4.2 主要功能模塊主要功能模塊主要就是那些類的功能模塊,主要有:1、各個游戲?qū)ο蟮馁N圖模塊2、敵機數(shù)量、方向、速度以及子彈的數(shù)量、方向和速度控制模塊。3、戰(zhàn)機的導彈的數(shù)目、方向和速度控制模塊。4、戰(zhàn)機的鍵盤控制和鼠標控制位置模塊。5、敵機、子彈和戰(zhàn)機、導彈的碰撞檢測以及爆炸模塊。6、背景添加模塊。7、戰(zhàn)機速度控制模塊。8、游戲關卡游戲難易度設置和游戲關卡選擇。9、游戲得分和生命值控制以及游戲關卡進入控制和游戲結束。10、游戲重新開始和游戲暫停控制模塊。11、游戲音效控制模塊。4.3 擴展功能設計思路本次實訓由于時間問題還有些擴展功能可進行增加,主要有:1給游戲增加敵機類型,豐富畫面,增加難度2、給游戲進行增加boss,通過boss的添加進行游戲的關卡和難度的更加進一步的提升。主要思路是:再增加一個類讓它繼承敵機類,然后再敵機類的基礎上進行增加其生命值和被打死后的得分。當戰(zhàn)機得分到達一定的值以后boss出現(xiàn)并進行和敵機一個隊伍發(fā)射另類的子彈進行攻擊戰(zhàn)機。5. 編碼實現(xiàn)void CPLANEGAMEView:OnDraw(CDC* pDC)CPLANEGAMEDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/加載圖片背景this-GetClientRect(&rect);CBitmap bitmap_BackGround;bitmap_BackGround.LoadBitmap(IDB_BACKGROUND);BITMAP bimap2;/位圖圖像bitmap_BackGround.GetBitmap(&bimap2);CDC cdc_BackGround;/定義一個兼容的DCcdc_BackGround.CreateCompatibleDC(pDC);/創(chuàng)建DCCBitmap*Old=cdc_BackGround.SelectObject(&bitmap_BackGround);/定義一個位圖對象CBitmap MemBitmap;/雙緩沖技術CDC MemDC;/這時還不能繪圖,因為沒有位圖的設備描述表是不能繪圖的/只有選入了位圖的設備描述表才有地方繪圖,畫到指定的位圖上MemDC.CreateCompatibleDC(pDC);/下面建立一個與屏幕設備描述表(或者內(nèi)存設備描述表)兼容的位圖MemBitmap.CreateCompatibleBitmap(pDC,rect.right,rect.bottom);CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);/將位圖選入到內(nèi)存設備描述表MemDC.StretchBlt(0,0,rect.Width(),rect.Height(),&cdc_BackGround,0,0,bimap2.bmWidth,bimap2.bmHeight,SRCCOPY);/繪圖完成后的清理/畫飛機myplane.draw(&MemDC); /畫向下飛的敵機 CEnemy* enemy1; POSITION pos1; for(pos1=ListEnemy1.GetHeadPosition();pos1!=NULL;) enemy1=(CEnemy*)ListEnemy1.GetNext(pos1); enemy1-draw(&MemDC); /畫向下飛的敵機的子彈CBall* ball1;POSITION posball1;for (posball1=ListBall1.GetHeadPosition();posball1!=NULL;)ball1=(CBall*)ListBall1.GetNext(posball1);ball1-draw(&MemDC); /畫向上飛的敵機 CEnemy* enemy2; POSITION pos2; for(pos2=ListEnemy2.GetHeadPosition();pos2!=NULL;) enemy2=(CEnemy*)ListEnemy2.GetNext(pos2); enemy2-draw(&MemDC); /畫向上飛的敵機的子彈CBall* ball2;POSITION posball2;for (posball2=ListBall2.GetHeadPosition();posball2!=NULL;)ball2=(CBall*)ListBall2.GetNext(posball2);ball2-draw(&MemDC);/畫戰(zhàn)機的炮彈CBomb* bomb1;/第一排戰(zhàn)機炮彈POSITION POS1;for(POS1=ListBomb1.GetHeadPosition();POS1!=NULL;)bomb1=(CBomb*)ListBomb1.GetNext(POS1);bomb1-draw(&MemDC);CBomb* bomb2;/第二排戰(zhàn)機炮彈POSITION POS2;for(POS2=ListBomb2.GetHeadPosition();POS2!=NULL;)bomb2=(CBomb*)ListBomb2.GetNext(POS2);bomb2-draw(&MemDC);/畫爆炸CExplosion* explosion; POSITION explosionPos1,explosionPos2; for(explosionPos1 = ListExplosion.GetHeadPosition();explosionPos1!=NULL;)explosionPos2=explosionPos1;explosion = (CExplosion *) ListExplosion.GetNext(explosionPos1); if(explosion-draw(&MemDC)=0)ListExplosion.RemoveAt(explosionPos2);/輸出當前信息HFONT font;font=CreateFont(20,10,0,0,0,0,0,0,0,0,0,100,10,0);MemDC.SelectObject(font);CString str;MemDC.SetTextColor(RGB(239,7,7);MemDC.SetBkColor(RGB(0,0,0);str.Format(_T(游戲得分:%d),myscore);MemDC.TextOut(10,10,str);str.Format(_T(剩余生命:%d),lifeNum);MemDC.TextOut(10,30,str);str.Format(_T(當前關卡:%d),passnum);MemDC.TextOut(10,50,str);pDC-BitBlt(rect.left,rect.top,rect.right,rect.bottom,&MemDC,0,0,SRCCOPY);MemBitmap.DeleteObject();MemDC.DeleteDC(); / TODO: 在此處為本機數(shù)據(jù)添加繪制代碼 void CPLANEGAMEView:OnInitialUpdate()if(AfxMessageBox(L查看游戲說明請點擊“是”,若直接進入游戲請點擊“否”!,MB_YESNO)=6)AfxMessageBox(L方向鍵控制戰(zhàn)機方向,空格鍵射擊,鼠標均可控制。初始生命值為,消滅一個敵機加分,分數(shù)達到即可進入下一關。隨著關卡增多,敵機速度增加!);Sleep(1000);CView:OnInitialUpdate();/加載飛機 myplane.load(); GetClientRect(&rect);myplane.setPoint(rect.right/2,rect.bottom/2);/加載敵機CEnemy:load();/加載飛機炮彈CBomb:load(); /加載戰(zhàn)機子彈CBall:load();/加載爆炸CExplosion:load();/設置定時器this-SetTimer(1,100,0);/ TODO: 在此添加專用代碼和/或調(diào)用基類 void CPLANEGAMEView:OnTimer(UINT_PTR nIDEvent)/ TODO: 在此添加消息處理程序代碼和/或調(diào)用默認值/上下左右鍵控制飛機移動 GetClientRect(&rect);if (GetKeyState(VK_LEFT)rect.left)myplane.move(1);if (GetKeyState(VK_RIGHT)0)if(myplane.Pos.xrect.right-50)myplane.move(2);if (GetKeyState(VK_UP)rect.top)myplane.move(3);if (GetKeyState(VK_DOWN)0)if(myplane.Pos.yrect.bottom-50)myplane.move(4);if (GetKeyState(VK_SPACE)0)/空格鍵代表戰(zhàn)機發(fā)射子彈CBomb *Bomb1=new CBomb( myplane.getPoint().x, myplane.getPoint().y); ListBomb1.AddHead(Bomb1);CBomb *Bomb2=new CBomb( myplane.getPoint().x+35, myplane.getPoint().y);ListBomb2.AddHead(Bomb2);PlaySound(LPCTSTR)IDR_WAVE4, AfxGetInstanceHandle(), SND_RESOURCE |SND_ASYNC);if (GetKeyState(F)0)KillTimer(1);if(GetKeyState(J)setSpeed(30);if (BombOne-Pos.yrect.top)BombOne-move();elseListBomb1.RemoveAt(p1);/第二排戰(zhàn)機炮彈POSITION pos2,p2;CBomb *BombTwo;for(pos2=ListBomb2.GetHeadPosition();pos2!=NULL;)p2=pos2;BombTwo=(CBomb*)ListBomb2.GetNext(pos2);BombTwo-setSpeed(30);if (BombTwo-Pos.yrect.top)BombTwo-move();else ListBomb2.RemoveAt(p2);switch(nIDEvent) case 1:/向下飛的敵機 POSITION pos1,p1; CEnemy *enemy1=new CEnemy(1); if(ListEnemy1.GetCount()setSpeed(enemyspeed);if(enemyone-Pos.ymove(1);elseListEnemy1.RemoveAt(p1);/向下飛的飛機的子彈POSITION posball1,pball1;CBall * ball1=new CBall(enemyone-getPoint().x+12,enemyone-getPoint().y+20,1);if (ListBall1.GetCount()setSpeed(ballspeed);if(ballone-getPoint().ymove(1);elseListBall1.RemoveAt(pball1); /向上飛的敵機this-GetClientRect(&rect);POSITION pos2,p2;CEnemy *enemy2=new CEnemy(-1);enemy2-setPoint(rand()%1000,rect.bottom-35);if(ListEnemy2.GetCount()setSpeed(enemyspeed); if (enemytwo-Pos.yrect.top) enemytwo-move(-1);elseListEnemy2.RemoveAt(p2);/向上飛的敵機的子彈POSITION posball2,pball2;CBall * ball2=new CBall(enemytwo-getPoint().x+12,enemytwo-getPoint().y+20,1);if (ListBall2.GetCount()setSpeed(ballspeed);if(balltwo-getPoint().yrect.top)balltwo-move(-1);elseListBall2.RemoveAt(pball2); this-Invalidate(TRUE);break;/戰(zhàn)機炮彈打中敵機/ /聲明戰(zhàn)機子彈位置,敵機位置POSITION bombPos,bombTemp,enemyPos,enemyTemp;for(bombPos= ListBomb1.GetHeadPosition();(bombTemp=bombPos)!=NULL;)bomb = (CBomb *) ListBomb1.GetNext(bombPos);/獲得戰(zhàn)機子彈的矩形區(qū)域CRect bombRect = bomb-getRect(); /消滅從上往下飛的敵機for(enemyPos= ListEnemy1.GetHeadPosition();(enemyTemp=enemyPos)!=NULL;)enemy = (CEnemy *) ListEnemy1.GetNext(enemyPos);/獲得敵機的矩形區(qū)域CRect enemyRect = enemy-getRect();/判斷兩個矩形區(qū)域是否有交接CRect tempRect;if(tempRect.IntersectRect(&bombRect,enemyRect)/將爆炸對象添加到爆炸鏈表中CExplosion *explosion=new CExplosion( enemy-getPoint().x+12),( enemy-getPoint().y+17);ListExplosion.AddTail(explosion);PlaySound(LPCTSTR)IDR_WAVE2, AfxGetInstanceHandle(), SND_RESOURCE |SND_ASYNC);/爆炸后刪除子彈ListBomb1.RemoveAt(bombTemp);delete bomb;/刪除敵機ListEnemy1.RemoveAt(enemyTemp);delete enemy;myscore+;/消滅從下往上飛的敵機for(enemyPos= ListEnemy2.GetHeadPosition();(enemyTemp=enemyPos)!=NULL;)enemy = (CEnemy *) ListEnemy2.GetNext(enemyPos);/獲得敵機的矩形區(qū)域CRect enemyRect = enemy-getRect();/判斷兩個矩形區(qū)域是否有交接CRect tempRect;if(tempRect.IntersectRect(&bombRect,enemyRect)/將爆炸對象添加到爆炸鏈表中CExplosion *explosion=new CExplosion( enemy-getPoint().x+12),( enemy-getPoint().y+17);ListExplosion.AddTail(explosion);PlaySound(LPCTSTR)IDR_WAVE2, AfxGetInstanceHandle(), SND_RESOURCE |SND_ASYNC);/爆炸后刪除子彈ListBomb1.RemoveAt(bombTemp);delete bomb;/刪除敵機ListEnemy2.RemoveAt(enemyTemp);delete enemy;myscore+; /敵機子彈打中戰(zhàn)機/聲明敵機炸彈位置坐標,戰(zhàn)機位置myPlanePosPOSITION ballPos,ballTemp;/從上往下飛的敵機子彈打中戰(zhàn)機for(ballPos= ListBall1.GetHeadPosition();(ballTemp=ballPos)!=NULL;)ball = (CBall *) ListBall1.GetNext(ballPos);/獲得敵機炸彈的矩形區(qū)域CRect ballRect = ball-getRect();/獲得戰(zhàn)機的矩形區(qū)域CRect myPlaneRect = myplane.getRect(); /判斷兩個矩形區(qū)域是否有交接CRect tempRect;/如果敵機炸彈打中戰(zhàn)機,則使戰(zhàn)機爆炸if(tempRect.IntersectRect(&ballRect,myPlaneRect) /將爆炸對象加入爆炸鏈表中CExplosion *explosion = new CExplosion( myplane.getPoint()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車維修行業(yè)人才引進與培養(yǎng)合同
- 2025年度環(huán)衛(wèi)工人勞動爭議調(diào)解與處理合同
- 二零二五年度農(nóng)村宅基地租賃協(xié)議(農(nóng)村文化產(chǎn)業(yè)發(fā)展)
- 2025年度高級建造師聘用與技術咨詢服務協(xié)議
- 二零二五年度商業(yè)企業(yè)購銷合同印花稅稅率調(diào)整與稅收籌劃實務
- 二零二五年度藝人經(jīng)紀與全產(chǎn)業(yè)鏈合作合同
- IT基礎設施建設項目投資合同
- 鄉(xiāng)村旅游資源開發(fā)利用合作協(xié)議
- 電梯采購工程合同
- 文化旅游項目開發(fā)合作框架協(xié)議
- 2025年第六屆(中小學組)國家版圖知識競賽測試題庫及答案
- GB/T 26436-2025禽白血病診斷技術
- 體育場館工程施工組織設計
- 春季校園常見傳染病及預防措施培訓課件
- 國際標準下的AI技術應用-深度研究
- 2025-2030年城市軌道交通運營行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 2025年江西生物科技職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 《信息技術(拓展模塊)》高職全套教學課件
- 2025天津市安全員《B證》考試題庫
- DB37T-住宅小區(qū)供配電設施建設標準編制說明
- 食品飲料行業(yè)酒類2025年度策略報告:拐點漸近行穩(wěn)致遠
評論
0/150
提交評論