![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),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、打飛機(jī)游戲1. 課程設(shè)計(jì)目的本次我做的是一個簡單的打飛機(jī)的游戲,包括計(jì)算打飛機(jī)、時間和打飛機(jī)的規(guī)則制 定。綜合運(yùn)用所學(xué)知識, 熟練掌握 VC+ 程序設(shè)計(jì)的編碼與以及各類作用個的具體實(shí)現(xiàn), 獨(dú)自利用 VC+ 程序編寫打飛機(jī)游戲,以檢測自己一個學(xué)期對 C+學(xué)習(xí)的情況,以及了 解自己在 VC+ 學(xué)習(xí)中的不足,鞏固和提高自己對 C+的理解和掌握。掌握 C+編程和 調(diào)試的基本技能,進(jìn)一步提高自己的動手能力,和運(yùn)用 C+解決實(shí)際問題的能力。隨著信息時代的到來,人們生活節(jié)奏的加快,利用電腦放松心情似乎已很是常見, 電腦游戲便應(yīng)運(yùn)而生了?;诖耍瑢τ谟螒虻拈_發(fā)者似乎也是一種挑戰(zhàn),它需要娛樂的 同時,又有一定的
2、放松大腦疲勞的作用。當(dāng)然,如果能在此同時又能使我們的大腦得到 進(jìn)一步的鍛煉與開發(fā)更是一種需求。鑒于此,開發(fā)者需要開發(fā)出滿足以上需求的游戲供 大家工作之余的放松以及智力的開發(fā)。當(dāng)然,隨著電腦的廣泛使用,游戲的類型和種類 均有增加。打飛機(jī)游戲由于其能很好的滿足上述需求,使得其受到廣泛的歡迎。而本游 戲的開發(fā)是基于單機(jī)模式的。本游戲針對人們的需求而設(shè)計(jì),使得上述功能成為了可能。其安裝及操作步驟均很 簡單,適合各類人群的使用。完成打飛機(jī)游戲的設(shè)計(jì)本系統(tǒng)是采用 Visual C+ 高級語 言進(jìn)行程序編制。2. 設(shè)計(jì)方案論證2.1 需求分析由于本游戲系統(tǒng)的對象單一,且每個數(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ī)為止并顯示 ,這屬于是一個遞 歸過程。點(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è)置,從簡單到困難,難度越大,生成游戲時飛機(jī)數(shù)量越多。因此,在選擇數(shù)據(jù)庫 時,應(yīng)考慮數(shù)據(jù)庫應(yīng)用的
4、特點(diǎn)及適用范圍, Visual C+ 是一種可視化的、面對對象和調(diào) 用事件驅(qū)動方式的結(jié)構(gòu)化高級程序設(shè)計(jì), 可用于開發(fā) Windows 環(huán)境下的種類應(yīng)用程序。 它簡單易學(xué)、效率高,且功能強(qiáng)大。在 Visual C+環(huán)境下,利用事件驅(qū)動的編程機(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è)置,從簡單到困難,難度越大,生成游 戲時飛機(jī)數(shù)量越多。我們所設(shè)計(jì)的這個軟件系統(tǒng)規(guī)模不大,就系統(tǒng)分析設(shè)計(jì)階段
5、而言不 須太多人力物力。為明確各自不同的任務(wù)側(cè)重點(diǎn)便于分配管理,我們將軟件開發(fā)周期分 為問題定義與可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)四個方面,利于我們相互協(xié) 作。目前 ,計(jì)算機(jī)的應(yīng)用領(lǐng)域越來越廣 ,為我們的這套軟件提供了硬件環(huán)境。本系統(tǒng)可以 運(yùn)行在 Windows95/98/2000/XP 等操作系統(tǒng)上,可說市場上流行的操作系統(tǒng)都可以支持 功能模塊圖,如圖 1 所示。圖1 系統(tǒng)功能模塊2.3 設(shè)計(jì)步驟首先是具體的設(shè)計(jì)步驟如下:在 VC+6.0 中,用自己的名字 gaoqingzhi 建立一個 MFC AppWizard(exe)工程,在應(yīng)用程序類型中選擇“基本對話框” ,其余的都采用默認(rèn)
6、 選項(xiàng),即可完成對話框的創(chuàng)建。在對話框中添加 4 個圖像, 6 個按鈕(分別是開始、布 局、保存、選項(xiàng)、載入、退出, )接著根據(jù)屬性對以上所添加的控件進(jìn)行屬性修改,主 要進(jìn)行重命名,以便編輯源代碼的時候區(qū)分,另外對圖像的處理除了對其進(jìn)行重命名外 還要對其添加位圖。 之后通過打開 C:WINDOWSsystem32 打開 cards.dll 加載 Bitmap 圖 片,并選中對其進(jìn)行重命名。 接著對以上添加的控件建立類向?qū)А?主要有 Add Function、 Add Variable和 Edit Code這三項(xiàng)的添加。根據(jù)流程圖在類的原文件中逐一添加實(shí)現(xiàn)各個 模塊其功能所需要的各種函數(shù),并添加
7、相應(yīng)的源代碼,同時在頭文件中添加對各種函數(shù) 及變量的聲明。對編譯好的程序進(jìn)行保存,開始進(jìn)行調(diào)試,邊調(diào)試邊根據(jù)報(bào)錯對原程序 進(jìn)行修改,直到程序不再進(jìn)行報(bào)錯為止,如圖 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ī)游戲布局建立此模塊對游戲的使用客戶有著自行的需求,除了能有系統(tǒng)自帶的飛機(jī),游戲的使用這還可以自行設(shè)計(jì)飛機(jī)數(shù)量、位置、以及飛機(jī)形態(tài)大小一系列的基本信息,并且還能使游戲充滿動態(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);此游戲還具有保存功能,可以在用戶使用一半時進(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ù)和變量,有時候可能會出現(xiàn)某幾個變量 忘定義的情況,這些變量有可能是在頭文件中忘記定義或者
20、在某個函數(shù)體中忘記定義, 在添加完各個函數(shù)的代碼完畢后,以為頭文件會自動對相應(yīng)得變量進(jìn)行定義,但頭文件 沒有對所有的變量都定義,于是出現(xiàn)了如上圖所示的錯誤。打開頭文件,雙擊 gaoqingzhiDlg.h,在 class CDgaoqingzhiDlg : public Cdialog 類定義函數(shù)中添加對 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ì)心得體會該項(xiàng)目的實(shí)現(xiàn),在經(jīng)過代碼的不斷完善和功能的加強(qiáng)后,該系統(tǒng)在封裝前能夠在WINDOWS 平臺上正常的運(yùn)行, 能夠?qū)崿F(xiàn)相應(yīng)的作用。 該項(xiàng)目的運(yùn)行狀況: 該游戲能夠 在用戶合法登陸后進(jìn)行相應(yīng)的功能,運(yùn)行狀況良好。在這次課程設(shè)計(jì)過程中,我的編程有了很大的提高,雖然有時候自己沒有思路,但 是凡事不能被困難嚇倒,只要有開始,去嘗試。就會有意想不到的收獲。可以借鑒別人 的代碼,看別人設(shè)計(jì)的思路,理解的同時自己小試一下也可以編出來,所以其次,在運(yùn) 行、調(diào)試過程中也學(xué)到了很多,以前編程最怕的就是報(bào)錯,尤其是錯誤多了的時候,感 覺毫無頭緒直接頭大,但是編程不可能不出錯,報(bào)錯,只要逐一對付,然后細(xì)心研
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ERK2-IN-5-生命科學(xué)試劑-MCE-2561
- 二零二五年度文化旅游項(xiàng)目管理費(fèi)合同范本
- 二零二五年度體育賽事表演安全免責(zé)合同
- 施工日志填寫樣本建筑物綠化工程
- 小學(xué)數(shù)學(xué)課堂中的情境教學(xué)與興趣培養(yǎng)
- 酒店衛(wèi)生標(biāo)準(zhǔn)與旅客健康保障措施研究
- 個人土地承包合同示范文本
- 產(chǎn)品分銷區(qū)域合同范本
- SPA會所年度承包經(jīng)營合同
- 個人財(cái)產(chǎn)保險(xiǎn)合同模板(經(jīng)典)
- 新人教版四年級下冊數(shù)學(xué)教材解讀課件
- 《移動互聯(lián)網(wǎng)應(yīng)用開發(fā)》課程標(biāo)準(zhǔn)
- 竣工資料封面
- 膿毒血癥指南
- 中國航天知識
- 安徽華納化學(xué)工業(yè)有限公司年產(chǎn)1000噸均苯四甲酸二酐、300噸潤滑油助劑項(xiàng)目環(huán)境影響報(bào)告書
- YY 9706.230-2023醫(yī)用電氣設(shè)備第2-30部分:自動無創(chuàng)血壓計(jì)的基本安全和基本性能專用要求
- 第8課紅樓春趣同步練習(xí)(含答案)
- C139營銷模型簡介(含案例)課件
- 死亡醫(yī)學(xué)證明書辦理委托書
- 《壓力容器安全技術(shù)監(jiān)察規(guī)程》
評論
0/150
提交評論