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

正文內(nèi)容

基于嵌入式wince開發(fā)的貪吃蛇游戲-文庫吧資料

2025-06-29 07:40本頁面
  

【正文】 { dcFillSolidRect(LEFTMARGIN+x*WIDTHOFBRICKS,10+y*HEIGHTOFBRICKS,WIDTHOFBRICKS,HEIGHTOFBRICKS,BACKCOLOR)。y++) { for(int x=0。 for(int y=0。 }下面是通過二維數(shù)組值來確定地圖上的各種顏色,是背景色,是蛇身色,還是食物顏色等。 InitSnake()。 Level=0。// HEIGHTOFBRICKS=(())/24。rt)。 CRect rt。 SetIcon(m_hIcon, FALSE)。BOOL CSnakeDlg::OnInitDialog(){ CDialog::OnInitDialog()。 SetTimer(1,TimerInterval,NULL)。 dead_flag=1。 TimerInterval=200。void CSnakeDlg::Start(){ Level=1。具體界面詳見下圖:如上圖:游戲界面左邊為地圖部分,是一個24*24的二維數(shù)組抽象出來的,右面有七個按鈕部分,分別對應(yīng)著上訴部分按鍵功能。 通過點擊相應(yīng)的按鈕,實現(xiàn)蛇向下方向前進的功能。 通過點擊相應(yīng)的按鈕,實現(xiàn)蛇向上方向前進的功能。 通過點擊相應(yīng)的按鈕,實現(xiàn)蛇向右方向前進的功能。 通過點擊相應(yīng)的按鈕,實現(xiàn)蛇向左方向前進的功能。 游戲暫停函數(shù),通過鼠標點擊暫停按鈕,實現(xiàn)游戲的暫停動能。 游戲開始函數(shù),通過鼠標點擊開始按鈕,調(diào)用游戲開始函數(shù),開始游戲。 游戲退出函數(shù),通過此函數(shù)實現(xiàn)游戲的結(jié)束功能。 程序內(nèi)部計時器函數(shù),主要功能是自動根據(jù)時間變量來動態(tài)執(zhí)行程序,從而使蛇動態(tài)前進。以上是貪吃蛇游戲類中主要的宏定義、變量、方法名以及方法對用的功能。用于動態(tài)統(tǒng)計蛇吃到食物之后,添加分數(shù)到文本框的函數(shù)。根據(jù)蛇前進的方向重畫蛇頭蛇尾,動態(tài)顯示蛇前進的方向,就是把蛇尾節(jié)點重畫成背景色,蛇頭節(jié)點的下一個節(jié)點重畫蛇身顏色,同時蛇頭節(jié)點變?yōu)橄乱粋€節(jié)點坐標,蛇尾節(jié)點變?yōu)榈箶?shù)第二節(jié)點。游戲開始函數(shù),設(shè)置程序的狀態(tài)為運行狀態(tài),打開定時器,默認初始化方向為向右。產(chǎn)生食物坐標的函數(shù),通過此函數(shù),每當蛇吃到一個食物時,隨機產(chǎn)生下一個食物的坐標。判斷游戲結(jié)束,顯示游戲分數(shù)等。void IS_GameOver()。void RefreshAll()。記錄蛇身的每個節(jié)點的坐標,定義為整形3. 程序Snake類內(nèi)部方法定義及說明程序中主要函數(shù)聲明詳見下:void InitSnake()。 記錄蛇當前頭結(jié)點的坐標,定義為整形CPoint snake_rear。 定時器間隔,定義為整形CPoint snake_foods。 記錄當前蛇前進的方向,定義為整形int dead_flag。 初始化每個小格子的高度,定義為整形int snake_body_length。 程序運行的狀態(tài),定義為整形int WIDTHOFBRICKS。 貪吃蛇游戲程序流程圖 貪吃蛇游戲主要類及成員變量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]。按鍵響應(yīng)功能的設(shè)置思路:貪吃蛇游戲的控制通過鍵盤按鍵來控制,所以必須實現(xiàn)鍵盤響應(yīng)功能,程序規(guī)定,上、下、左、右按鍵控制貪吃蛇的前進方向,空格鍵控制游戲開始和暫停,當按下回車鍵時,游戲重新進行初始化,重新開始游戲,此時需要重復(fù)上一個過程。分數(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)的變小。更新蛇身的具體的設(shè)計思路:程序執(zhí)行的步驟,首先接受玩家按下方向鍵消息,并把當前要前進的方向保存在方向變量snake_direct中,記錄貪吃蛇下一個狀態(tài)前進的方向,通過方向判斷頭節(jié)點下一個節(jié)點的坐標值。程序中本模塊具體功能是在void InitFoods()函數(shù)中實現(xiàn)。其次,程序中必須增加一個判斷,判斷當前生成的果實坐標是否在貪吃蛇身體范圍內(nèi),如果當前生成的坐標在蛇身坐標范圍內(nèi),那么必須重新隨機產(chǎn)生食物坐標直到不在為止。 貪吃蛇游戲的主要功能設(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)的,運用MFC類庫中的FillSoldRect ()庫函數(shù)通過程序內(nèi)部的二維數(shù)組進行繪制地圖,地圖然后可以改變,這樣在游戲運行后就會在窗體上顯示游戲初始化的效果。蛇身操作模塊功能的設(shè)計: 首先得到當前按下的移動方向,此時有兩種情況需要考慮,如果遇到的是一個果實,則蛇身長度增加一個單位,表現(xiàn)在程序中是存放蛇身數(shù)組值增加一位,如果沒遇到果實,則不斷更新蛇身數(shù)組中的相應(yīng)坐標值。分數(shù)統(tǒng)計算法的思想是每次蛇吃到一個果實時,相加的分數(shù)為蛇身長度乘以一個定值來記錄分數(shù),這樣可以隨著游戲難度的增加,分數(shù)值也隨之增多。 貪吃蛇游戲的總體功能圖 貪吃蛇功能圖 貪吃蛇游戲的實現(xiàn)的功能模塊在貪吃蛇游戲中,本論文設(shè)計的貪吃蛇游戲的大致可以分為五個功能模塊,以下是對這五個模塊的具體介紹: 游戲規(guī)則模塊功能設(shè)計:游戲規(guī)則包括蛇的運動范圍、蛇的生命周期問題、分數(shù)統(tǒng)計、關(guān)卡判斷。游戲分數(shù)的統(tǒng)計方法,當貪吃蛇吃到果實時,玩家的分數(shù)就應(yīng)該隨著吃到的果實而增加,增加的規(guī)則就是貪吃蛇的身體長度乘以等級 得到分數(shù)。果實的出現(xiàn),每次貪吃蛇吃到果實時,于此同時,應(yīng)該出現(xiàn)一個果實在地圖中,那么怎么實現(xiàn)這個功能呢?我采用的是隨機函數(shù)出現(xiàn)果實的橫縱坐標,然后判斷這個店得坐標是不是在蛇身上,如果是那么就得重現(xiàn)出現(xiàn)上一個過程,直到食物的坐標不在蛇身上為止。根據(jù)每次所得的分數(shù)值不同,判斷玩家的能力,來顯示玩家的效果。游戲具有以下功能:能夠?qū)崿F(xiàn)貪吃蛇自動前線移動,也就是貪吃蛇能夠“活動”的外觀效果,根據(jù)相同的時間間隔,每一次將貪吃蛇自身的蛇頭向前移動一個小格子,同時蛇尾向前移動一個小格子,移動方向為貪吃蛇行走的方向。 貪吃蛇游戲的需求分析編寫目的:為了提高自己動手能力,完成大學階段本科生的畢業(yè)設(shè)計,參考了很多嵌入式方面的書籍以及對VC++語言的熟練程度,我決定編寫貪吃蛇游戲嵌入式項目完成自己的畢業(yè)設(shè)計。5. 界面要求:采用Windows標準界面,只需要使用鍵盤和鼠標。3. 性能需求:必須保證自己開發(fā)的貪吃蛇游戲能夠整體盡可能做到高效快速,不占用大量的使用資源,因為我做的是一個嵌入式的游戲開發(fā)項目,必須要考慮資源使用情況,要求盡可能少用資源,在有限的資源范圍內(nèi)實現(xiàn)最大的可利用價值。通過查找相關(guān)文檔和技術(shù)支持,了解了EVC環(huán)境下的開發(fā)過程,熟悉了VC++語言的開發(fā)技巧,通過以下幾個方面,進行可行性分析:1. 參考文獻 :《貪吃蛇游戲用戶描述文檔》、《軟件工程》等書,確定自己能夠在自己能力范圍內(nèi)開發(fā)出這個貪吃蛇游戲項目。除了上述所需的添加組件外,我們還需要一些另外的組件。 winCE內(nèi)核定制我們在編譯winCE內(nèi)核鏡像前,需要添加特性目錄(Catalog)的一些組件來定制內(nèi)核,我們在本系統(tǒng)需要添加以下的組件:(1)添加鼠標鍵盤控制驅(qū)動;(2)添加USB主控制器驅(qū)動;(3)添加USB從控制器驅(qū)動(建立與PC機的Activesyn。之后建立UPTECH S2410/P270 DVP的WinCE工程,都需要建立在這個BSP的基礎(chǔ)上。導(dǎo)入BSP的過程很簡單,只需要安裝光盤中提供的up270classic_BSP文件就可以實現(xiàn),可以由指導(dǎo)教師提前完成。然后需要建立系統(tǒng)最基本的配置。 (3)如果PC上使用的操作系統(tǒng)為Windows XP SP2,可能出現(xiàn)嚴重安裝問題,最好不要采用Windows XP SP2,或者在微軟網(wǎng)站上搜索相關(guān)的指導(dǎo)文檔。光驅(qū):可以使用與桌面系統(tǒng)相兼容的CDROM或DVDROM等。安裝時間通常較長,網(wǎng)絡(luò)安裝的版本同時依賴網(wǎng)絡(luò)的速度。在實際操作中,我們主要有如下的注意事項: (1)推薦安裝在分區(qū)根目錄下。ClassWizard不能幫助你創(chuàng)建從除了支持MFC類之外的任何類中派生的類;對于帶有任何其他基的類,你必須使用文本編輯器或Insert菜單上的New Class命令從零開始自己編寫代碼。之所以叫它為“主”對話,是因為ClassWizard可以在20多種不同的對話中顯示自己,究竟在哪一個對話中顯示需取決于環(huán)境。Visual C++將檢測到數(shù)據(jù)庫不存在了,并提供重新創(chuàng)建它的服務(wù)。在一個類不是以ClassWizard為起源的情況下,有一個簡單的方法可以更新CLW數(shù)據(jù)庫。如果你一直都是ClassWizard為項目創(chuàng)建新類,那么CLW文件可以保持最新。其次,你可以使用ClassWizard向MFC項目添加新類,即使該項目不是AppWizard創(chuàng)建的。首先,它的服務(wù)完全是可選的。一旦RC文件被附加到項目之中(AppWizard可以自動完成這項工作),你就可以通過從View菜單中選擇ClassWizard命令來調(diào)用ClassWizard對話了。訪問ClassWizard不能從一個空的項目中訪問ClassWizard。除了少數(shù)例外的類(例如CRecordSet和CHttpServer)之外,基類都是由CCmdTarget派生而來,它們能夠?qū)ο⒆鞒龇磻?yīng),并能夠管理對話框中的控件。用于輸入到對話控件中的數(shù)據(jù)交換和驗證函數(shù)。ClassWizard在四個區(qū)域提供幫助,它可以為如下目的生成代碼:從接收消息或管理控件窗口的許多MFC 類中的一個派生出來的新類,處理消息的成員函數(shù)。ClassWizard 通過生成實現(xiàn)CPP文件,以及一個帶有合適存根函數(shù)的頭文件,來幫助你開始編寫新類。 ClassWizard(類向?qū)В┖喗? ,我們不可避免的會遇到各種各樣的類的調(diào)用,因此,之前我們必須學會運用類向?qū)磉M行程序的設(shè)計。其中NorFlash用于裝載Boot,主要負責系統(tǒng)硬件的初始化和操作系統(tǒng)的引導(dǎo),當操作系統(tǒng)被裝載到SDRAM中之后,將系統(tǒng)控制權(quán)交給操作系統(tǒng);NandFlash用于存儲操作系統(tǒng)內(nèi)核鏡像、文件系統(tǒng)和大量的數(shù)據(jù)圖象;帶觸摸屏的液晶顯示用來顯示程序運行的結(jié)果和觸摸控制游戲。另外,本次程序的設(shè)計對硬件的性能要求比較要,主要包括一下幾個方面:①強大的CPU處理運算能力;②強大的數(shù)據(jù)存儲能力;③強大的顯示能力 ;④能提供多種外設(shè)接口;⑤具有高性能、低功耗、小尺寸、易于升級等;⑥具有較大的兼容性和擴展性;⑦便于程序的測試和內(nèi)核的下載。X86:支持的處理器包括4858Geode、Pentium I/II/III/IV。MIPS:支持的處理器包括MIPS II/32(帶浮點運算)、MIPS II/3(不帶浮點運算)、MIPS1MIPS IV/64(帶浮點運算)、MIPS IV/6(不帶浮點運算)。到此為止,貪吃蛇游戲的大概思路就解決了。這里我們首先考慮到一個十分重要的問題,就是蛇遇到食物(這里我們用一個藍色的小矩形表示蛇的食物蘋果)同時,將食物吃掉并且動態(tài)自身增加一節(jié),這里我們是這樣實現(xiàn)的:首先實現(xiàn)的是食物的隨機出現(xiàn),在某個食物被吃掉的同時,我們要立即產(chǎn)生出下一個食物的坐標,我們用到的是一個隨機函數(shù)產(chǎn)生出下一個食物的坐標,但是這個坐標必須僅僅在0—23之間,因為我們地圖采用的是一個24維的二維數(shù)組表示的,地圖每個橫坐標縱坐標的范圍是0—23,但是,這里注意一個特別重
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1