freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于嵌入式wince開發(fā)的貪吃蛇游戲(編輯修改稿)

2025-07-20 07:40 本頁面
 

【文章內(nèi)容簡介】 站上搜索相關(guān)的指導文檔。安裝過程中請關(guān)閉系統(tǒng)防火墻。然后需要建立系統(tǒng)最基本的配置。打開PB ,首先導入我們提供的BSP包。導入BSP的過程很簡單,只需要安裝光盤中提供的up270classic_BSP文件就可以實現(xiàn),可以由指導教師提前完成。安裝完,會發(fā)現(xiàn)在系統(tǒng)的\WINCE500\Platform\路徑下出現(xiàn)“Up_PXA270cl”文件夾,這個就是安裝好的BSP了。之后建立UPTECH S2410/P270 DVP的WinCE工程,都需要建立在這個BSP的基礎(chǔ)上。(類似地,你也可以自己構(gòu)建系統(tǒng)自帶的Mainstone II的工程,但是它不能運行在UPTECH S2410/P270 DVP實驗箱上)。 winCE內(nèi)核定制我們在編譯winCE內(nèi)核鏡像前,需要添加特性目錄(Catalog)的一些組件來定制內(nèi)核,我們在本系統(tǒng)需要添加以下的組件:(1)添加鼠標鍵盤控制驅(qū)動;(2)添加USB主控制器驅(qū)動;(3)添加USB從控制器驅(qū)動(建立與PC機的Activesyn。連接需要此特性);(4)添加串口驅(qū)動;(5)添加觸摸屏驅(qū)動;(6);(7)添加撥號網(wǎng)絡(luò)組件驅(qū)動;(8)添加Fat文件系統(tǒng);.(9)加入對HIVE注冊表的支持;(10)加入對Mediaplayer播放器;(11)加入對本地存儲器中的mp3和wMA文件播放的支持。除了上述所需的添加組件外,我們還需要一些另外的組件。 貪吃蛇游戲詳細設(shè)計開發(fā) 貪吃蛇游戲的可行性分析 在我進行編寫貪吃蛇游戲之前,我所做的必須是可行性分析,因為一旦進行貪吃蛇游戲項目的開發(fā),就必須保證自己在規(guī)定的時間內(nèi)能夠獨立的完整整個程序的所有功能,而且必須是最優(yōu)的,因此,在開發(fā)貪吃蛇游戲之前,我必須要做的是可行性分析。通過查找相關(guān)文檔和技術(shù)支持,了解了EVC環(huán)境下的開發(fā)過程,熟悉了VC++語言的開發(fā)技巧,通過以下幾個方面,進行可行性分析:1. 參考文獻 :《貪吃蛇游戲用戶描述文檔》、《軟件工程》等書,確定自己能夠在自己能力范圍內(nèi)開發(fā)出這個貪吃蛇游戲項目。2. 功能要求:在進行整個項目開發(fā)之前,我必須要做的就是確定貪吃蛇游戲的主要功能,必須明確貪吃蛇游戲的功能,因為要進行游戲功能可行性分析,經(jīng)過自己的查閱相關(guān)資料,我確定了貪吃蛇游戲的具體功能,詳見后續(xù)部分詳細設(shè)計。3. 性能需求:必須保證自己開發(fā)的貪吃蛇游戲能夠整體盡可能做到高效快速,不占用大量的使用資源,因為我做的是一個嵌入式的游戲開發(fā)項目,必須要考慮資源使用情況,要求盡可能少用資源,在有限的資源范圍內(nèi)實現(xiàn)最大的可利用價值。4. 運行環(huán)境:PXA270S開發(fā)板,EVC ++,模擬器上進行調(diào)試,經(jīng)過安裝軟件,確定可以進行項目程序的編寫。5. 界面要求:采用Windows標準界面,只需要使用鍵盤和鼠標。6. 完成期限,一個學期完成整個系統(tǒng),包括程序的編寫,硬件板子的下載,以及最終的調(diào)試,測試階段。 貪吃蛇游戲的需求分析編寫目的:為了提高自己動手能力,完成大學階段本科生的畢業(yè)設(shè)計,參考了很多嵌入式方面的書籍以及對VC++語言的熟練程度,我決定編寫貪吃蛇游戲嵌入式項目完成自己的畢業(yè)設(shè)計。文檔范圍:文檔包括了嵌入式技術(shù)領(lǐng)域的介紹,嵌入式國內(nèi)外環(huán)境的探索與簡介,主要從我國嵌入式領(lǐng)域發(fā)展的最新階段來探討,與國際對比得出相應(yīng)發(fā)展的前景,同時,針對自身對嵌入式方面的興趣愛好,以及自己所掌握的有限知識來對嵌入式方面的一些看法等,另外還有winCE環(huán)境的簡介,以及用法,還有關(guān)于嵌入式基于winCE的開發(fā)流程的一些相關(guān)文檔,還有EVC++,以及游戲的詳細代碼的功能簡介等。游戲具有以下功能:能夠?qū)崿F(xiàn)貪吃蛇自動前線移動,也就是貪吃蛇能夠“活動”的外觀效果,根據(jù)相同的時間間隔,每一次將貪吃蛇自身的蛇頭向前移動一個小格子,同時蛇尾向前移動一個小格子,移動方向為貪吃蛇行走的方向。對游戲中規(guī)則進行判斷,當游戲中的貪吃蛇遇到墻壁和自身時,根據(jù)規(guī)則判斷應(yīng)為死亡,宣告當前游戲結(jié)束,記錄當前游戲的分數(shù)值。根據(jù)每次所得的分數(shù)值不同,判斷玩家的能力,來顯示玩家的效果。貪吃蛇的相關(guān)操作,根據(jù)鍵盤上的上、下、左、右四個鍵來控制貪吃蛇游戲的前進方向,同時,根據(jù)空格鍵來開始游戲,空格鍵在游戲開始時,還有另外一個功能,那就是暫停游戲功能,這樣玩家就可以根據(jù)暫停游戲來處理當前需要處理的事情,當游戲結(jié)束時,按回車鍵就可以重新開始游戲的初始化界面。果實的出現(xiàn),每次貪吃蛇吃到果實時,于此同時,應(yīng)該出現(xiàn)一個果實在地圖中,那么怎么實現(xiàn)這個功能呢?我采用的是隨機函數(shù)出現(xiàn)果實的橫縱坐標,然后判斷這個店得坐標是不是在蛇身上,如果是那么就得重現(xiàn)出現(xiàn)上一個過程,直到食物的坐標不在蛇身上為止。這樣就出現(xiàn)了果實。游戲分數(shù)的統(tǒng)計方法,當貪吃蛇吃到果實時,玩家的分數(shù)就應(yīng)該隨著吃到的果實而增加,增加的規(guī)則就是貪吃蛇的身體長度乘以等級 得到分數(shù)。這樣就可以根據(jù)游戲的難度對應(yīng)的得到分數(shù)。 貪吃蛇游戲的總體功能圖 貪吃蛇功能圖 貪吃蛇游戲的實現(xiàn)的功能模塊在貪吃蛇游戲中,本論文設(shè)計的貪吃蛇游戲的大致可以分為五個功能模塊,以下是對這五個模塊的具體介紹: 游戲規(guī)則模塊功能設(shè)計:游戲規(guī)則包括蛇的運動范圍、蛇的生命周期問題、分數(shù)統(tǒng)計、關(guān)卡判斷。其中蛇的運動范圍是一個24*24的數(shù)組呢,蛇運動的地圖抽象成為一個24*24的二維整形數(shù)組,每個數(shù)組值代表一個小方塊的坐標值,這樣,蛇只能在規(guī)定好的二維數(shù)組內(nèi)運動,當蛇遇到數(shù)組邊界值(我們在這里抽象成為上、下、左、右四個邊界,其中上邊界坐標值中縱坐標都是0,橫坐標任意,下邊界為縱坐標是24,同理橫坐標不變,左邊界為橫坐標為0,縱坐標任意,同理右邊界為橫坐標為24,縱坐標任意)時,宣告蛇生命周期結(jié)束,貪吃蛇死亡,這個是第一個規(guī)則;另外,當蛇自己吃到自己身體的某一部分時,也宣告游戲結(jié)束,在程序里通過循環(huán)判斷蛇頭下一個前進方向的節(jié)點是不是蛇身上的某一部分節(jié)點即可,如果是那么蛇死亡,否則繼續(xù)運行游戲。分數(shù)統(tǒng)計算法的思想是每次蛇吃到一個果實時,相加的分數(shù)為蛇身長度乘以一個定值來記錄分數(shù),這樣可以隨著游戲難度的增加,分數(shù)值也隨之增多。關(guān)卡功能設(shè)置通過與分數(shù)相關(guān)聯(lián)而體現(xiàn)的,初始化游戲為第一關(guān),分數(shù)為0,當玩家玩到一定的分數(shù)時(例如是500)關(guān)卡加一,變?yōu)榈诙P(guān),同時,蛇前進速度相應(yīng)增加一個等級,這樣就實現(xiàn)了不同關(guān)卡,不同速度的貪吃蛇,從而增加了游戲的難度。蛇身操作模塊功能的設(shè)計: 首先得到當前按下的移動方向,此時有兩種情況需要考慮,如果遇到的是一個果實,則蛇身長度增加一個單位,表現(xiàn)在程序中是存放蛇身數(shù)組值增加一位,如果沒遇到果實,則不斷更新蛇身數(shù)組中的相應(yīng)坐標值。按鍵功能模塊:游戲是通過鍵盤按鍵控制,其中空格鍵控制游戲開始和暫停,上、下、左、右鍵控制蛇頭前進方向,回車鍵控制游戲重新開始,程序內(nèi)部是通過消息響應(yīng)函數(shù)實現(xiàn)。主界面地圖模塊:貪吃蛇游戲的主界面是通過窗體初始化事件進行實現(xiàn)的,運用MFC類庫中的FillSoldRect ()庫函數(shù)通過程序內(nèi)部的二維數(shù)組進行繪制地圖,地圖然后可以改變,這樣在游戲運行后就會在窗體上顯示游戲初始化的效果。幫組模塊:通過窗體的調(diào)用另外一個幫組窗體顯示游戲的規(guī)則,游戲的計分公式,游戲的玩法等等。 貪吃蛇游戲的主要功能設(shè)計思路地圖初始化界面設(shè)計思路:Windows MFC在程序執(zhí)行時,會動態(tài)的調(diào)用窗口資源,在程序自動生成函數(shù)中,添加相應(yīng)的函數(shù)實現(xiàn)程序初始化界面,本程序的具體思路是:程序在開始執(zhí)行時會調(diào)用BOOL CSnakeDlg::OnInitDialog()函數(shù),進行窗體的初始化,我們在此窗體客戶區(qū)求得窗體長和寬的最小值,記錄在WIDTHOFBRICKS和HEIGHTOFBRICKS 變量中,因為我們設(shè)計的游戲地圖是一個24*24的小方格組成的矩形區(qū)域,因為我們在這需要求出小矩形的長度和高度,在這,根據(jù)WIDTHOFBRICKS和HEIGHTOFBRICKS 等分為24部分,求出每個小矩形的邊長存放在HEIGHTOFBRICKS和WIDTHOFBRICKS變量中,然后調(diào)用繪圖函數(shù)void CSnakeDlg::MyDraw()進行地圖的繪制,這樣在程序執(zhí)行時,就動態(tài)繪制了貪吃蛇游戲地圖。果實出現(xiàn)的設(shè)計思路:首先,果實時通過一個坐標記錄下在地圖上的位置,通過繪圖函數(shù)繪制這點坐標的小矩形,程序中采用的是隨機數(shù)生成果實出現(xiàn)的坐標。其次,程序中必須增加一個判斷,判斷當前生成的果實坐標是否在貪吃蛇身體范圍內(nèi),如果當前生成的坐標在蛇身坐標范圍內(nèi),那么必須重新隨機產(chǎn)生食物坐標直到不在為止。如果坐標不在蛇身坐標范圍內(nèi),則把坐標位置返回給調(diào)用對象。程序中本模塊具體功能是在void InitFoods()函數(shù)中實現(xiàn)。具體代碼參見程序主要代碼說明。更新蛇身的具體的設(shè)計思路:程序執(zhí)行的步驟,首先接受玩家按下方向鍵消息,并把當前要前進的方向保存在方向變量snake_direct中,記錄貪吃蛇下一個狀態(tài)前進的方向,通過方向判斷頭節(jié)點下一個節(jié)點的坐標值。先判斷下一個節(jié)點坐標值是不是符合游戲規(guī)則之內(nèi)(也就是判斷蛇是不是死亡)的坐標,此時調(diào)用IS_GameOver()函數(shù)判斷游戲是否結(jié)束,如果結(jié)束宣告游戲結(jié)束,否則程序繼續(xù)執(zhí)行;如果下一個節(jié)點的坐標值與當前食物節(jié)點坐標值(snake_foods)相同,則調(diào)用void MyDraw()函數(shù)重繪蛇頭和蛇尾節(jié)點顏色,因為此時蛇吃到一個果實,蛇身長度加一,動態(tài)的現(xiàn)實,將果實重繪為蛇身顏色(紅色),蛇尾節(jié)點顏色不變,蛇身變量長度snake_body_length自加,動態(tài)記錄當前蛇頭節(jié)點snake_head和蛇尾節(jié)點snake_rear的坐標;如果下一個節(jié)點不是食物節(jié)點,重繪蛇頭蛇尾顏色,蛇身長度不變,動態(tài)的蛇頭和蛇尾節(jié)點坐標改變。分數(shù)統(tǒng)計和改變關(guān)卡的設(shè)計思路:在本程序設(shè)計的貪吃蛇游戲中,分數(shù)統(tǒng)計采用的是如下公式進行的統(tǒng)計,貪吃蛇游戲分數(shù) = 貪吃蛇蛇身長度 * 定制變量(本程序設(shè)置的是整形常量5),這樣可以動態(tài)的根據(jù)蛇身長度不同,每次得到果實的分數(shù)也就隨之不同,體現(xiàn)了游戲難度的差異;另外游戲關(guān)卡的設(shè)計與分數(shù)統(tǒng)計有著密切的關(guān)系,關(guān)卡是通過玩家玩得的分數(shù)而自動晉級的,換句話說,例如:游戲的初始化分數(shù)為0,游戲關(guān)卡為第一關(guān),當玩家玩到1000分數(shù)時根據(jù)程序內(nèi)部定義,關(guān)卡增加一級,同時,游戲難度也要隨之增加,體現(xiàn)在程序中就是,定時器變量刷新間隔要變小,也就是類中定義的TimerInterval變量要隨之相應(yīng)的變小。這樣,在玩家看來,蛇的刷新速度就會變得越來越快。按鍵響應(yīng)功能的設(shè)置思路:貪吃蛇游戲的控制通過鍵盤按鍵來控制,所以必須實現(xiàn)鍵盤響應(yīng)功能,程序規(guī)定,上、下、左、右按鍵控制貪吃蛇的前進方向,空格鍵控制游戲開始和暫停,當按下回車鍵時,游戲重新進行初始化,重新開始游戲,此時需要重復上一個過程。這些按鍵消息響應(yīng)是通過函數(shù)BOOL CSnakeDlg::PreTranslateMessage(MSG* pMsg)來實現(xiàn),內(nèi)部通過case語句進行相應(yīng)按鍵的響應(yīng),從而實現(xiàn)按鍵響應(yīng)功能。 貪吃蛇游戲程序流程圖 貪吃蛇游戲主要類及成員變量1. 各種宏定義以及說明define DIRECT_UP 1 用于控制向上方向宏,定義為整形1define DIRECT_DOWN 2 用于控制向下方向宏,定義為整形2define DIRECT_RIGHT 3 用于控制向右方向宏,定義為整形3 define DIRECT_LEFT 4 用于控制向左方向宏,定義為整形4 define STOP 1 定義程序運行狀宏停止,定義為整形1 define RUNNING 2 定義程序運行狀宏運行,定義為整形2 define PAUSE 3 定義程序運行狀宏暫停,定義為整形3 define BACKCOLOR RGB(0,128,128) 定義蛇身顏色為紅色define SNAKECOLOR RGB(255,0,0) 定義食物顏色為藍色define FOODSCOLOR RGB(0,255,255) 定義食物矩形邊界顏色為深綠define CLRTOPLEFT RGB(68,71,140) 定義地圖中小矩形邊框的顏色2. 程序Snake類內(nèi)部的變量定義及說明int SnakeOfBrick[24][24]。 用于初始化繪制圖形的二位數(shù)組,定義為整形int GameState。 程序運行的狀態(tài),定義為整形int WIDTHOFBRICKS。 初始化每個小格子的寬度,定義為整形int HEIGHTOFBRICKS。 初始化每個小格子的高度,定義為整形int snake_body_length。 記錄當前蛇的長度,定義為整形int snake_direct。 記錄當前蛇前進的方向,定義為整形int dead_flag。 判斷蛇死亡的標志,定義為整形int TimerInterval。 定時器間隔,定義為整形CPoint snake_foods。 記錄當前食物所在的坐標,定義為整形CPoint snake_head。 記錄蛇當前頭結(jié)點的坐標,定義為整形CPoint snake_rear。 記錄蛇當前尾結(jié)點的坐標,定義為整形CPoint snake_body[1000]。記錄蛇身的每個節(jié)點的坐標,定義為整形3. 程序Snake類內(nèi)部方法定義及說明程序中主要函數(shù)聲明詳見下:void InitSnake()。初始化地圖和蛇開始的位置,蛇自身的長度,食物位置,游戲的狀態(tài),游戲的關(guān)卡,游戲的分數(shù),蛇頭位置,蛇尾位置等參數(shù)值。void RefreshAll()。初始化刷新屏幕,利用EVC提供的畫刷類在屏幕上顯示相應(yīng)的效果,并且通過此函數(shù)能夠?qū)崿F(xiàn)游戲的重新開始功能,即游戲的重新初始化地圖,蛇身位置,食物坐標等相關(guān)參數(shù)。void IS_GameOver()。判斷蛇是否死亡,根據(jù)地圖坐標(24*24的二維數(shù)組)和蛇自身坐標,判斷蛇死亡。判斷游戲結(jié)束,顯示游戲分數(shù)等。void InitFoods()。產(chǎn)生食物坐標的函數(shù),通過此函數(shù),每當蛇吃到
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1