




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)文檔蛇吞食程序設(shè)計(jì)【摘要】本游戲設(shè)計(jì)采用MFC編程,對(duì)鍵盤消息、定時(shí)器消息、圖形界面等三個(gè)主要模塊進(jìn)行設(shè)計(jì),可視化強(qiáng)。本游戲初始編寫比較基礎(chǔ),程序代碼相對(duì)簡(jiǎn)單。此游戲具有可靠性,安全性以及低成本等特點(diǎn)?!娟P(guān)鍵詞】鍵盤消息定時(shí)器消息圖形界面一.功能模塊的劃分整個(gè)界面由一個(gè)長(zhǎng)寬為540*540的矩形框(此為蛇的活動(dòng)范圍和食物出現(xiàn)的范圍)、分?jǐn)?shù)欄等構(gòu)成。鍵盤消息:按動(dòng)鍵盤↑、↓、←、→使蛇的方向進(jìn)行改變。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第1頁(yè)。定時(shí)器消息:整個(gè)程序只用到一個(gè)定時(shí)器,在OnStart()里對(duì)定時(shí)器進(jìn)行設(shè)定SetTimer(1,100,NULL),在OnTimer()中對(duì)蛇和食物進(jìn)行處理:第一關(guān):將block設(shè)置為1,當(dāng)分?jǐn)?shù)超過(guò)10分蛇不能通過(guò)墻壁;第二關(guān):將block設(shè)置為2,設(shè)置障礙物并且蛇不能碰到墻壁,但有最低分?jǐn)?shù)為20分。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第1頁(yè)。圖形界面:位圖處理:在OnDraw()里面畫出蛇和食物的圖片。一張蛇圖有四個(gè)方向的四條蛇,改變x_org(橫坐標(biāo))、y_org(縱坐標(biāo))、t_org(寬度)、b_org(長(zhǎng)度)、t_org1(蛇圖顯示區(qū)域的橫坐標(biāo))的值來(lái)控制蛇不同方向的運(yùn)動(dòng),用rand()來(lái)隨機(jī)產(chǎn)生食物的圖片。在執(zhí)行Invalidate()時(shí)自動(dòng)顯示位圖的不同狀態(tài)。菜單功能模塊:Set包含Start、Gameover、First、Second。Start啟動(dòng)定時(shí)器、Gameover關(guān)掉定時(shí)器并且退出游戲界面。First和Second分別選擇游戲級(jí)別。Help是游戲的說(shuō)明。二.程序流程程序流程:程序執(zhí)行Ondraw()函數(shù)部分,顯示出蛇朝右的圖片和食物圖片。選擇級(jí)別First或者Second,此時(shí)程序會(huì)調(diào)用OnFirst()或OnSecond()改變block的值。若選擇的First,block將賦值為1,然后選擇Start程序調(diào)用OnStart()函數(shù),將m_nStart賦值為1,程序?qū)?zhí)行第一關(guān)的代碼,蛇能夠穿墻而過(guò)。如果分?jǐn)?shù)超過(guò)10分(即score>10),游戲?qū)⒆詣?dòng)升級(jí),蛇不能穿墻而過(guò),碰到墻壁蛇將死亡;若選擇的Second,block將賦值為2,然后選擇Start程序調(diào)用OnStart()函數(shù),將m_nStart賦值為1,程序?qū)?zhí)行第二關(guān)的代碼,蛇不能夠穿墻而過(guò),而且在活動(dòng)范圍內(nèi)有障礙物,但有最低分20分,若碰到墻壁或障礙物蛇將死亡。在選擇Start后,程序自動(dòng)啟動(dòng)定時(shí)器,執(zhí)行OnTimer()部分的代碼,若block=1,執(zhí)行第一關(guān)的代碼,蛇可以分別在四個(gè)方向上運(yùn)動(dòng),score自動(dòng)加分直到超過(guò)10,則改變代碼蛇不能撞墻。若撞墻則KillTimer()并將score置為0;在執(zhí)行OnTimer()部分的代碼時(shí),要不斷執(zhí)行Invalidate()進(jìn)行刷新,然后調(diào)用Ondraw(),畫出不同狀態(tài)下的圖形。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第2頁(yè)。選擇GameOver選項(xiàng),調(diào)用OnEnd()函數(shù),使m_nstart=0,KillTimer()并且退出游戲。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第2頁(yè)。程序流程圖: 概要設(shè)計(jì)1.編寫目的概要設(shè)計(jì)為“蛇吞食”客戶端的開(kāi)發(fā)提供基本的設(shè)計(jì)基礎(chǔ)。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第3頁(yè)。背景:蛇吞食是源于貪吃蛇開(kāi)發(fā)的一種變種的基礎(chǔ)游戲,主要針對(duì)手機(jī)小游戲進(jìn)行開(kāi)發(fā)?!吧咄淌场敝饕康脑谟诠┤藠蕵?lè)和消遣,此游戲開(kāi)發(fā)代碼簡(jiǎn)單。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第3頁(yè)。2.參考資料:Visualc++與面向?qū)ο蟪绦蛟O(shè)計(jì)教程MFC程序開(kāi)發(fā)大全游戲編程精粹63.基本設(shè)計(jì)概念和處理流程本游戲主要由鍵盤消息、定時(shí)器消息和圖形界面三部分功能模塊構(gòu)成。定時(shí)器又分為第一關(guān)模塊和第二關(guān)模塊;圖形界面又分為位圖處理模塊和菜單功能模塊。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第4頁(yè)。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第4頁(yè)。下圖為各功能模塊的關(guān)系圖:4.結(jié)構(gòu)程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第5頁(yè)。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第5頁(yè)。功能模塊子功能模塊標(biāo)識(shí)符功能描述與其它各模塊的關(guān)系鍵盤消息無(wú)OnKeyDown改變蛇圖的方向在圖形界面的Ondraw函數(shù)中在一張位圖中截取不同方向的蛇圖定時(shí)器消息第一關(guān)模塊OnTimer蛇可以分別在四個(gè)方向上運(yùn)動(dòng),score自動(dòng)加分直到超過(guò)10,則改變代碼蛇不能撞墻。若撞墻則KillTimer()并將score置為0不斷對(duì)圖像進(jìn)行刷新然后蛇自由的在活動(dòng)范圍內(nèi)移動(dòng),在此會(huì)涉及到鍵盤消息改變蛇移動(dòng)的方向,也會(huì)調(diào)用Ondraw()進(jìn)行圖像的處理第二關(guān)模塊OnTimer蛇可以分別在四個(gè)方向上運(yùn)動(dòng),限制蛇的活動(dòng)范圍不斷對(duì)圖像進(jìn)行刷新然后蛇自由的在活動(dòng)范圍內(nèi)移動(dòng),在此會(huì)涉及到鍵盤消息改變蛇移動(dòng)的方向,也會(huì)調(diào)用Ondraw()進(jìn)行圖像的處理圖形界面位圖處理模塊Ondraw畫出可視化界面,矩形框、蛇圖、食物圖片、顯示分?jǐn)?shù)等在OnTimer里面進(jìn)行刷新時(shí)自動(dòng)調(diào)用Ondraw()達(dá)到顯示不同位置和方向的蛇圖、不同位置的食物圖、在玩游戲過(guò)程中的分?jǐn)?shù)和最后的總分?jǐn)?shù)。菜單功能模塊Set、HelpSet里面選擇級(jí)別和開(kāi)始;Help選擇Introduce查看游戲的操作說(shuō)明5.功能需求與程序的關(guān)系各項(xiàng)功能需求的實(shí)現(xiàn)同各塊程序的分配關(guān)系:程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第6頁(yè)。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第6頁(yè)。OnDrawOnInvalidateOnIntroduceOnFirstOnSecondOnStartOnEndOnKeydownOnTimer鍵盤消息√定時(shí)器消息√√√√位圖處理模塊√菜單功能模塊√√√√√6.人工處理本游戲只由用戶按動(dòng)↑↓←→控制蛇運(yùn)動(dòng)方向,防止碰到墻或障礙物即可。尚未解決的問(wèn)題7.用戶接口用戶接口的設(shè)計(jì)按照友好性,更多的采用圖形界面。規(guī)范操作命令和方法、用戶界面、菜單結(jié)構(gòu)、移動(dòng)提示、彈出彈入圖符、警告提示的信息、幫助的提示。鍵盤消息:用戶只需要按動(dòng)上下左右鍵控制蛇方向即可。定時(shí)器消息:用戶只需在菜單中選擇需要的關(guān)卡,就可啟動(dòng)后臺(tái)程序。并通過(guò)觀察蛇的運(yùn)動(dòng)速度便可掌握蛇自由移動(dòng)的大致時(shí)間。圖形界面:用戶通過(guò)菜單選擇啟動(dòng)后臺(tái)程序,蛇碰到墻壁或障礙物,則會(huì)出現(xiàn)信息提示;通過(guò)視圖玩游戲,界面簡(jiǎn)單,從而操作也簡(jiǎn)單。在玩游戲的過(guò)程中可以看到自己當(dāng)前的分?jǐn)?shù),游戲結(jié)束時(shí)可以看到總分。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第7頁(yè)。程序設(shè)計(jì)文檔全文共8頁(yè),當(dāng)前為第7頁(yè)。8.出錯(cuò)信息用戶在玩游戲過(guò)程中按到錯(cuò)誤的鍵盤會(huì)顯示信息提示“對(duì)不起,按鍵錯(cuò)誤,請(qǐng)重新選擇!”;蛇撞墻或障礙物,會(huì)提示“笨蛋,蛇撞墻了!”總結(jié)在此次課程設(shè)計(jì)中,編寫程序遇到了不少麻煩,比如怎樣使蛇自由的活動(dòng)起來(lái)、怎樣使用定時(shí)器等。幸虧有老師和同學(xué)的幫助,才能將這些問(wèn)題一一的解決。我感覺(jué)在編寫程序的時(shí)候要先規(guī)劃好先做哪一步,再做哪一步,在每編寫好一個(gè)模塊后要及時(shí)的進(jìn)行調(diào)試,以保證程序在整個(gè)過(guò)程中的正確性。在做此次課程設(shè)計(jì)之前就先定好了題材,做出粗略的規(guī)劃:第一步:建立好工程,處理位圖;第二步:編寫鍵盤消息的程序,與此同時(shí)配合位圖進(jìn)行處理;第三步:處理定時(shí)器的消息并且能使位圖活動(dòng)起來(lái);第四步:處理圖形界面的菜單選項(xiàng)。編寫游戲時(shí)要有絕對(duì)好的耐心,在此期間會(huì)出現(xiàn)各種各樣意想不到的困難,此時(shí)絕對(duì)不能被困難打到,要仔細(xì)分析虛心向老師和同學(xué)請(qǐng)教并且查閱相關(guān)的資料,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州幼兒師范高等??茖W(xué)?!抖砹_斯電視新聞(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 第六章生物群落的組成與結(jié)構(gòu)
- 紡織行業(yè)安全事故
- 2025年云南省陸良縣八中高考數(shù)學(xué)試題二輪優(yōu)化提升專題訓(xùn)練含解析
- 2025年福建省重點(diǎn)中學(xué)高三下學(xué)期4月調(diào)研數(shù)學(xué)試題含解析
- 荊州理工職業(yè)學(xué)院《藏醫(yī)學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 開(kāi)題報(bào)告-鋸坯機(jī)主傳動(dòng)裝置設(shè)計(jì)
- 大學(xué)生創(chuàng)業(yè)之星路演
- 預(yù)防性侵幼兒園
- 防爆電氣基礎(chǔ)知識(shí)
- (完整版)海域使用權(quán)評(píng)估報(bào)告-
- 鋼結(jié)構(gòu)原理與設(shè)計(jì)概述課件
- PAC性格測(cè)試課件
- 成功八步課件
- “順豐杯”第三屆全國(guó)大學(xué)生物流設(shè)計(jì)大賽案例
- 群文閱讀指導(dǎo)課《人物描寫一組臨死前的嚴(yán)監(jiān)生》課件
- (完整)交叉作業(yè)施工方案
- 辦公樓電氣設(shè)計(jì)方案說(shuō)明
- 工器具檢查及記錄表
- 密碼學(xué) 替換密碼
- 工程表層土利用方案
評(píng)論
0/150
提交評(píng)論