![vC課程設(shè)計(jì)打飛機(jī)游戲_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/590a0126-87ad-44e1-8b37-9041c182d3d7/590a0126-87ad-44e1-8b37-9041c182d3d71.gif)
![vC課程設(shè)計(jì)打飛機(jī)游戲_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/590a0126-87ad-44e1-8b37-9041c182d3d7/590a0126-87ad-44e1-8b37-9041c182d3d72.gif)
![vC課程設(shè)計(jì)打飛機(jī)游戲_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/590a0126-87ad-44e1-8b37-9041c182d3d7/590a0126-87ad-44e1-8b37-9041c182d3d73.gif)
![vC課程設(shè)計(jì)打飛機(jī)游戲_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/590a0126-87ad-44e1-8b37-9041c182d3d7/590a0126-87ad-44e1-8b37-9041c182d3d74.gif)
![vC課程設(shè)計(jì)打飛機(jī)游戲_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/590a0126-87ad-44e1-8b37-9041c182d3d7/590a0126-87ad-44e1-8b37-9041c182d3d75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、打飛機(jī)游戲1. 課程設(shè)計(jì)目的本次我做的是一個(gè)簡(jiǎn)單的打飛機(jī)的游戲,包括計(jì)算打飛機(jī)、時(shí)間和打飛機(jī)的規(guī)則制 定。綜合運(yùn)用所學(xué)知識(shí), 熟練掌握 VC+ 程序設(shè)計(jì)的編碼與以及各類作用個(gè)的具體實(shí)現(xiàn), 獨(dú)自利用 VC+ 程序編寫打飛機(jī)游戲,以檢測(cè)自己一個(gè)學(xué)期對(duì) C+學(xué)習(xí)的情況,以及了 解自己在 VC+ 學(xué)習(xí)中的不足,鞏固和提高自己對(duì) C+的理解和掌握。掌握 C+編程和 調(diào)試的基本技能,進(jìn)一步提高自己的動(dòng)手能力,和運(yùn)用 C+解決實(shí)際問題的能力。隨著信息時(shí)代的到來,人們生活節(jié)奏的加快,利用電腦放松心情似乎已很是常見, 電腦游戲便應(yīng)運(yùn)而生了?;诖?,對(duì)于游戲的開發(fā)者似乎也是一種挑戰(zhàn),它需要娛樂的 同時(shí),又有一定的
2、放松大腦疲勞的作用。當(dāng)然,如果能在此同時(shí)又能使我們的大腦得到 進(jìn)一步的鍛煉與開發(fā)更是一種需求。鑒于此,開發(fā)者需要開發(fā)出滿足以上需求的游戲供 大家工作之余的放松以及智力的開發(fā)。當(dāng)然,隨著電腦的廣泛使用,游戲的類型和種類 均有增加。打飛機(jī)游戲由于其能很好的滿足上述需求,使得其受到廣泛的歡迎。而本游 戲的開發(fā)是基于單機(jī)模式的。本游戲針對(duì)人們的需求而設(shè)計(jì),使得上述功能成為了可能。其安裝及操作步驟均很 簡(jiǎn)單,適合各類人群的使用。完成打飛機(jī)游戲的設(shè)計(jì)本系統(tǒng)是采用 Visual C+ 高級(jí)語 言進(jìn)行程序編制。2. 設(shè)計(jì)方案論證2.1 需求分析由于本游戲系統(tǒng)的對(duì)象單一,且每個(gè)數(shù)據(jù)內(nèi)容具有較強(qiáng)的關(guān)聯(lián)性,涉及的計(jì)
3、算過程 不是很復(fù)雜。當(dāng)前各種游戲軟件層出不窮。打飛機(jī)游戲的基本需要點(diǎn)擊鼠標(biāo)左鍵于未知 區(qū)域,如果未知區(qū)域有飛機(jī) ,并且游戲停止 ,顯示所有的飛機(jī)。如果飛機(jī) ,則顯示周圍飛機(jī)數(shù) 如果周圍沒飛機(jī) ,則再查看周圍區(qū)域是否有飛機(jī)直到有飛機(jī)為止并顯示 ,這屬于是一個(gè)遞 歸過程。點(diǎn)擊鼠標(biāo)右鍵于未知區(qū)域 ,則將其置為有飛機(jī)而不管是否真的有飛機(jī)。 飛機(jī)區(qū)右 下角顯示總飛機(jī)數(shù)減去被標(biāo)明有飛機(jī)區(qū)域的數(shù)目。系統(tǒng)主要功能包括:游戲的生成打飛 機(jī)游戲的初始化,根據(jù)數(shù)量不同的飛機(jī),每種難度下的飛機(jī)數(shù)量相同。游戲難度的選擇 難度設(shè)置,從簡(jiǎn)單到困難,難度越大,生成游戲時(shí)飛機(jī)數(shù)量越多。因此,在選擇數(shù)據(jù)庫 時(shí),應(yīng)考慮數(shù)據(jù)庫應(yīng)用的
4、特點(diǎn)及適用范圍, Visual C+ 是一種可視化的、面對(duì)對(duì)象和調(diào) 用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì), 可用于開發(fā) Windows 環(huán)境下的種類應(yīng)用程序。 它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大。在 Visual C+環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、 新穎易用的可視化設(shè)計(jì)工具,可以高效、快速地開發(fā)出 Windows 環(huán)境下功能強(qiáng)大、圖 形界面豐富的應(yīng)用軟件系統(tǒng)。2.2 系統(tǒng)總體設(shè)計(jì)系統(tǒng)主要功能包括:游戲的生成打飛機(jī)游戲的初始化,根據(jù)數(shù)量不同的飛機(jī),每種 難度下的飛機(jī)數(shù)量相同。游戲難度的選擇難度設(shè)置,從簡(jiǎn)單到困難,難度越大,生成游 戲時(shí)飛機(jī)數(shù)量越多。我們所設(shè)計(jì)的這個(gè)軟件系統(tǒng)規(guī)模不大,就系統(tǒng)分析設(shè)計(jì)階段
5、而言不 須太多人力物力。為明確各自不同的任務(wù)側(cè)重點(diǎn)便于分配管理,我們將軟件開發(fā)周期分 為問題定義與可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)四個(gè)方面,利于我們相互協(xié) 作。目前 ,計(jì)算機(jī)的應(yīng)用領(lǐng)域越來越廣 ,為我們的這套軟件提供了硬件環(huán)境。本系統(tǒng)可以 運(yùn)行在 Windows95/98/2000/XP 等操作系統(tǒng)上,可說市場(chǎng)上流行的操作系統(tǒng)都可以支持 功能模塊圖,如圖 1 所示。圖1 系統(tǒng)功能模塊2.3 設(shè)計(jì)步驟首先是具體的設(shè)計(jì)步驟如下:在 VC+6.0 中,用自己的名字 gaoqingzhi 建立一個(gè) MFC AppWizard(exe)工程,在應(yīng)用程序類型中選擇“基本對(duì)話框” ,其余的都采用默認(rèn)
6、 選項(xiàng),即可完成對(duì)話框的創(chuàng)建。在對(duì)話框中添加 4 個(gè)圖像, 6 個(gè)按鈕(分別是開始、布 局、保存、選項(xiàng)、載入、退出, )接著根據(jù)屬性對(duì)以上所添加的控件進(jìn)行屬性修改,主 要進(jìn)行重命名,以便編輯源代碼的時(shí)候區(qū)分,另外對(duì)圖像的處理除了對(duì)其進(jìn)行重命名外 還要對(duì)其添加位圖。 之后通過打開 C:WINDOWSsystem32 打開 cards.dll 加載 Bitmap 圖 片,并選中對(duì)其進(jìn)行重命名。 接著對(duì)以上添加的控件建立類向?qū)А?主要有 Add Function、 Add Variable和 Edit Code這三項(xiàng)的添加。根據(jù)流程圖在類的原文件中逐一添加實(shí)現(xiàn)各個(gè) 模塊其功能所需要的各種函數(shù),并添加
7、相應(yīng)的源代碼,同時(shí)在頭文件中添加對(duì)各種函數(shù) 及變量的聲明。對(duì)編譯好的程序進(jìn)行保存,開始進(jìn)行調(diào)試,邊調(diào)試邊根據(jù)報(bào)錯(cuò)對(duì)原程序 進(jìn)行修改,直到程序不再進(jìn)行報(bào)錯(cuò)為止,如圖 2 所示。圖 2 設(shè)計(jì)模塊2.4 主窗口建立 主界面控制菜單的設(shè)計(jì)接下來回到資源編程界面,編寫菜單資源,用來控制掃雷的 過程,難度選定,以及自定義難度窗口等。設(shè)置菜單包含:開始,布局,載入,保存。 幫助菜單獲取該軟件的版本信息,如圖 3 所示。圖3 開始功能模塊具體實(shí)現(xiàn)代碼為:BOOL m_bLoadWelcomeString;int m_nGameStatus; / 游戲是否開始BOOL m_bLoadFrame;CString
8、m_strComment5;CString m_strComment4;CString m_strComment3;CString m_strComment2;CString m_strComment1;CRect m_rectCommentFrame; /fixed frameCPoint m_ptComment; /scroll(the rectangle to show Comment)CRect m_rectFighterDown;CRect m_rectBomb;CRect m_rectFighterHit;int m_nCommentTimer;int m_nWelcomeTime
9、r;int m_nFighterHit;int m nFighterDown;int m_nBomb;public:void SetURL(CString strURL);CString GetURL() const;void SetColours(COLORREF crLinkColour, COLORREF crVisitedColour,COLORREF crHoverColour = -1);COLORREF GetLinkColour() const;COLORREF GetVisitedColour() const;COLORREF GetHoverColour() const;
10、void SetVisited(BOOL bVisited = TRUE);BOOL GetVisited() const;void SetLinkCursor(HCURSOR hCursor);HCURSOR GetLinkCursor() const;void SetUnderline(BOOL bUnderline = TRUE);BOOL GetUnderline() const;void SetAutoSize(BOOL bAutoSize = TRUE);BOOL GetAutoSize() const;HINSTANCE GotoURL(LPCTSTR url, int show
11、cmd); void DrawComment(CDC * pDC);CPoint m_ptNew;void DrawPiece(CDC * pDC, int x, int y, int nResult); void DrawShootingResult(CDC * pDC);int m_nShootingResult1010;int m_nSky1010;CRect m_rectSky;2.5 打飛機(jī)游戲布局建立此模塊對(duì)游戲的使用客戶有著自行的需求,除了能有系統(tǒng)自帶的飛機(jī),游戲的使用這還可以自行設(shè)計(jì)飛機(jī)數(shù)量、位置、以及飛機(jī)形態(tài)大小一系列的基本信息,并且還能使游戲充滿動(dòng)態(tài)形式多變等如圖 4 所示
12、。圖4 游戲的布局具體實(shí)現(xiàn)代碼為:public:BOOL StartScrolling();void EndScrolling();void SetCredits(LPCTSTR credits, char delimiter = '|');void SetCredits(UINT nID, char delimiter = '|');void SetSpeed(UINT index, int speed = 0);void SetColor(UINT index, COLORREF col);void SetTextHeight(UINT index, int
13、 height);void SetEscape(UINT index, char escape);void SetGradient(UINT value = GRADIENT_RIGHT_DARK);BOOL SetBkImage(UINT nIDResource);BOOL SetBkImage(LPCTSTR lpszResourceName);void SetTransparent(BOOL bTransparent = TRUE);/ Overrides/ ClassWizard generated virtual function overrides /AFX_VIRTUAL(CCr
14、editStatic) /AFX_VIRTUAL/ Implementationpublic:virtual CCreditStatic();/ Generated message map functionsprotected:void MoveCredit(CDC *pDC, CRect& r, CRect& r2, BOOL bCheck);void AddBackGround(CDC* pDC, CRect& m_ScrollRect, CRect& m_ClientRect);void DrawCredit(CDC* pDC, CRect& m_
15、ScrollRect);void FillGradient(CDC *pDC, CRect *m_ScrollRect, CRect *m_FillRect, COLORREF color);void DrawBitmap(CDC* pDC, CDC* pDC2, CRect *rBitmap);此游戲還具有保存功能,可以在用戶使用一半時(shí)進(jìn)行保存,以備下次能繼續(xù)使用,此保存功能如圖 5 所示圖 5 游戲保存圖具體實(shí)現(xiàn)代碼為:#ifndef BCMenu_H #define BCMenu_H #include <afxtempl.h>/ BCMenuData class. Fill
16、this class structure to define a single menu item: class BCMenuDatapublic:BCMenuData () menuIconNormal=-1;xoffset=-1;bitmap=NULL;pContext=NULL; nFlags=0;nID=0;syncflag=0;m_szMenuText=NULL;global_offset=-1;void SetAnsiString(LPCSTR szAnsiString);void SetWideString(const wchar_t *szWideString);const w
17、char_t *GetWideString(void) return m_szMenuText;BCMenuData ();CString GetString(void);/returns the menu text in ANSI or UNICODEint xoffset,global_offset;int menuIconNormal;UINT nFlags,nID,syncflag;CImageList *bitmap;void *pContext; / used to attach user data ;protected:COLORREFm_Colors5;intm_TextHei
18、ghts4;TCHARm_Escapes4;intm_DisplaySpeed3,m_CurrentSpeed;/ CRectm_ScrollRect; / rect of Static Text frameCStringList m_ArrCredit;CStringm_szWork;intm_nCounter;/ work intsPOSITIONm_ArrIndex;BOOLm_bFirstTime;BOOLm_bDrawText;intm_nClip,m_ScrollAmount;intm_nCurrentFontHeight;CBitmapm_bmpWork; / bitmap ho
19、lderCBitmapm_BmpMain; / bitmap holderCSizem size;/ drawing helpersCPointm_pt;BOOLm_bProcessingBitmap;CPalette m_pal;CBitmapm_bitmap;int m_cxBitmap, m_cyBitmap;BOOLm_bFirstTurn;UINT m_Gradient;BOOLm_bTransparent;3. 設(shè)計(jì)結(jié)果與分析3.1 游戲的調(diào)試及保存back在代碼添加過程中,由于涉及到很多的函數(shù)和變量,有時(shí)候可能會(huì)出現(xiàn)某幾個(gè)變量 忘定義的情況,這些變量有可能是在頭文件中忘記定義或者
20、在某個(gè)函數(shù)體中忘記定義, 在添加完各個(gè)函數(shù)的代碼完畢后,以為頭文件會(huì)自動(dòng)對(duì)相應(yīng)得變量進(jìn)行定義,但頭文件 沒有對(duì)所有的變量都定義,于是出現(xiàn)了如上圖所示的錯(cuò)誤。打開頭文件,雙擊 gaoqingzhiDlg.h,在 class CDgaoqingzhiDlg : public Cdialog 類定義函數(shù)中添加對(duì) m 參數(shù)的定義就可運(yùn)行成功,如圖 6 所示。圖 6 程序調(diào)試圖程序調(diào)試成功后進(jìn)行運(yùn)行界面,運(yùn)行成功后可以選擇開始選項(xiàng)、布局選項(xiàng)、保存選項(xiàng)、載入選項(xiàng)以及退出,程序調(diào)試成功后運(yùn)行,如圖 7 所示圖 7 程序運(yùn)行圖開始新的游戲,在程序運(yùn)行成功后如果用戶想重新開始游戲, 也可以重新選擇開始,新的游戲
21、開始如圖 8 所示圖 8 游戲重新開始圖4. 設(shè)計(jì)心得體會(huì)該項(xiàng)目的實(shí)現(xiàn),在經(jīng)過代碼的不斷完善和功能的加強(qiáng)后,該系統(tǒng)在封裝前能夠在WINDOWS 平臺(tái)上正常的運(yùn)行, 能夠?qū)崿F(xiàn)相應(yīng)的作用。 該項(xiàng)目的運(yùn)行狀況: 該游戲能夠 在用戶合法登陸后進(jìn)行相應(yīng)的功能,運(yùn)行狀況良好。在這次課程設(shè)計(jì)過程中,我的編程有了很大的提高,雖然有時(shí)候自己沒有思路,但 是凡事不能被困難嚇倒,只要有開始,去嘗試。就會(huì)有意想不到的收獲??梢越梃b別人 的代碼,看別人設(shè)計(jì)的思路,理解的同時(shí)自己小試一下也可以編出來,所以其次,在運(yùn) 行、調(diào)試過程中也學(xué)到了很多,以前編程最怕的就是報(bào)錯(cuò),尤其是錯(cuò)誤多了的時(shí)候,感 覺毫無頭緒直接頭大,但是編程不可能不出錯(cuò),報(bào)錯(cuò),只要逐一對(duì)付,然后細(xì)心研
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 韓國漢陽大學(xué)申請(qǐng)書
- 校園安全管理與班主任的職責(zé)擔(dān)當(dāng)
- 海島、山區(qū)等偏遠(yuǎn)地區(qū)的綠色能源應(yīng)用與發(fā)展研究
- 現(xiàn)代建筑施工新技術(shù)探討
- 小饅頭生產(chǎn)線行業(yè)深度研究報(bào)告
- 2022-2027年中國涂布白板紙行業(yè)運(yùn)行態(tài)勢(shì)及未來發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- ZrTiNbAl系難熔高熵合金耐腐蝕和高溫氧化性能研究
- 抗氧劑接枝改性XLPE水樹枝老化特性研究
- 花壇的布置實(shí)驗(yàn)報(bào)告
- 基于超分子大環(huán)芳烴的吸附分離材料
- 【青島版《科學(xué)》】四年級(jí)下冊(cè)第一單元1 《運(yùn)動(dòng)與力》 教學(xué)設(shè)計(jì)
- 加氣站安全管理(最新)精選PPT課件
- 47《心經(jīng)》圖解PPT課件(50頁P(yáng)PT)
- 污水管線鋪設(shè)施工工藝方法
- 維修保運(yùn)車間崗位職責(zé)
- 液堿生產(chǎn)工序及生產(chǎn)流程敘述
- 三年級(jí)學(xué)生《成長(zhǎng)記錄》模板
- 好書推薦——《三毛流浪記》
- 方菱F2100B中文系統(tǒng)說明書
- 人教版動(dòng)手動(dòng)腦學(xué)物理答案 八下
- 九宮格數(shù)獨(dú)題目(打印版)
評(píng)論
0/150
提交評(píng)論