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

正文內容

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

2024-12-14 01:27 本頁面
 

【文章內容簡介】 它快速開發(fā)出下一代的智能化小體積連接設備。借助于完善的操作系統(tǒng)功能和開發(fā)工具, Windows CE .NET為開發(fā)人員提供了構建、調試和部署基于 Windows 的定制設備所需的一切特性。平臺開發(fā)工具 Platform Builder是一個完全集成的開發(fā)環(huán)境( IDE),并且包括一個軟件開發(fā)工具包( SDK)導出工具。 因此它具有比之前版本更有效的特點,具體來說詳見以下特點。 Windows CE .NET 支持 Microsoft eMbedded Visual C++174。和 MicrosoftVisual Studio174。 .NET,為面向 Compact Framwork的 Web 服務和應用程序開發(fā)提供了一個完整的開發(fā)環(huán)境。利用這些工具,開發(fā)人員可以迅速開發(fā)出能夠在最新硬件上運行各種應用程序的智能化設計。作為最新版本, Windows CE .NET 對 Windows CE 先10 前版本的強大功能進行了進一步的擴充和豐富,它提供了:對安全和可伸縮網絡的支持 、 得到增強的實時處 理能力 、 更為優(yōu)秀的性能表現(xiàn) 、 更為豐富的多媒體和Web瀏覽功能 、 與個人計算機、服務器、 Web服務以及其它設備更為出色的互操作性 。 的相關開發(fā)工具 介紹 是微軟公司提供的基于 WinCENET 平臺下嵌入式操作系統(tǒng)定制的集成開發(fā)環(huán)境,提供了所有進行設計、創(chuàng)建、編譯、下載和測試WinCENET 操作系統(tǒng)平臺的工具。開發(fā)人員可以通過交互式的環(huán)境來設計和定制內核、選擇系統(tǒng)特性,然后進行編譯和測試。同 時,還可以進行驅動程序開發(fā)和應用程序項目的開發(fā)等等。 具體來說, 提供的主要開發(fā)特性如下 : BSP 開發(fā)向導 :用來引導開發(fā)人員去創(chuàng)建一個新的系統(tǒng)平臺或 BSP(板卡支持包 )。 :列出了可以用來定制一個平臺的操作系統(tǒng)特性。 :可以向其他用戶導出自定義的目錄特性。 SDK 向導 :用于導出一個定制的軟件開發(fā)工具包 (SD 殉。 :能保證支撐一個平臺的所需特性可以被包含到操作系統(tǒng)鏡像中來。 (測試工具包 ):用于驅動程序的測試 。 :用于測試一個定制的操作系統(tǒng)鏡像。 :用于在一個定制的操作系統(tǒng)鏡像上測試應用程序。 (Emulator):允許用戶在開發(fā)工作站上對平臺和應用程序進行測試,簡化了系統(tǒng)開發(fā)流程,縮短了開發(fā)時間。 :可執(zhí)行同基于 的目標設備有關的各種測試任務和信息收集任務。 11 EmbeddedVisual C++ 介紹 EmbeddedVisualc++是微軟公司提供的開發(fā)嵌入式應用軟件的平臺,它是visualC++的子集, EVC 和 Windows 下的 VC 在界面、語法和開發(fā)流程基本一樣,EVC 的編程也是 WINN32 的編程,支持 WIN API 中的大部分函數,熟悉 VC 的人很快就會使用 EVC 進行開發(fā)。 EVC 和 PlatformBuilder 的不同之處在于 PlatformBuilder 針對的是操作系統(tǒng)的定制,編譯目標是整個 05 的內核,雖然 PlatformBuilder 也能開發(fā)應用程序,但是這些應用程序是作為整個系統(tǒng)的一部分而存在,編譯時還是以一個操作系統(tǒng)為單位 ; EVC 針對的是應用軟件開發(fā),特定操作系統(tǒng)的 SDK 就已經為它提供了系統(tǒng)的運行環(huán) 境,因此它編譯的單位是一個應用程序。因此,針對于應用程序的開發(fā)、編譯和測試,在 EVC 中完成往往是高效的、合理的 。 概要 設計 系統(tǒng)的整體結構 系統(tǒng)的定制 首先所需 winCE 系統(tǒng)內核的定制,通過 來定制自己所需要的系統(tǒng)內核,根據自己程序設計時所用到的 win32 程序的接口,以及用到的庫函數,類庫,各種所需要的驅動,例如 USB 驅動,屏幕顯示驅動,鼠標驅動,鍵盤驅動等,來定制自己所需要的系統(tǒng)內核,系統(tǒng)不必過于繁瑣,達到自己所需要的功能即可,因為我們所強調的 是嵌入式,嵌入式是以方便為前提的,定制的系統(tǒng) 是以簡潔方便為目的的,具體的定制細節(jié)我們在第四章將會詳細介紹。 程序的編寫 其次是針對自己定制的系統(tǒng)編寫項目程序 ,我們在此過程中用到的工具是Microsoft eMbedded Visual C++,我們在 EVC 環(huán)境下,選擇標準 SDK 環(huán)境,然后在標準模擬器上進行編寫調試程序。程序的名稱是《貪吃蛇游戲》,采用的是VC++語言, MFC 微軟基礎類庫環(huán)境的單文檔窗體。 12 程序的大體思想是: 采用一個二維數組(這里我們采用的是 24*24 的整形數組) 作為貪吃蛇游戲的背 景地圖, 數組的 每 個值代表地圖上 每個小矩形,而每個小矩形連續(xù)組成貪吃蛇的蛇身,在程序初始化窗體時候調用這個函數,刷新出程序的背景地圖;程序貪吃蛇的蛇身用一個 Cpoint 類的一位連續(xù)數組, Cpoint 類是一個結構體類型,結構體類型里包含著兩個整形參數 x 和 y 代表的是屏幕窗體上的某一個對應的點的坐標,我們在得知點的坐標的同時,就明確了對應二維數組地圖上的某個矩形區(qū)域的坐標值,這樣用 Cpoint 類的一位數組我們可以存放蛇身的每個節(jié)點的坐標, 于此同時,我們在程序 snake 類里面設定蛇頭和蛇尾的坐標變量、蛇身長度的坐 標變量,這樣在程序調用 Timer()系統(tǒng)函數定時刷新時, 每次刷新只需要改變蛇頭和蛇尾的坐標即可,每次刷新時,根據舍身前進方向判斷下一個頭節(jié)點的坐標值,然后添加到 Cpoint 類定義的蛇身節(jié)點,而蛇尾節(jié)點坐標值是前一個狀態(tài)的倒數第二個節(jié)點,然后調用庫函數 FillSolildRect()函數刷新頭節(jié)點為蛇的自身顏色,而尾節(jié)點是地圖背景顏色,這樣我們在外觀看起來就是蛇身前進的效果。 那么,我們怎么判斷蛇頭前進的方向呢?這個問題的解決方式是,在定義snake 類的同時,定義了一個私有變量 Direction 為蛇動態(tài)前進的 方向,而每次Timer()刷新時,動態(tài)的根據鍵盤響應函數來判斷前進方向,并同時給 Direction賦值,這樣每次刷新的同時 Direction 為四個方向(上、下、左、右)其中的一個方向,蛇頭前進的方向在此時已經確定, 這樣就動態(tài)的根據輸入的鍵盤值來改變蛇的前進方向,我們就可以控制蛇的移動啦! 最后,在蛇動態(tài)效果顯示出來的同時,我們也應該考慮到蛇的生命周期問題,就是蛇在什么情況下會死亡,在什么情況下會得分,在什么情況下會自 身長度增加等一系列相關問題。 這里我們首先考慮到一個十分重要的問題,就是蛇遇到食物 (這里我們用 一個藍色的小矩形表示蛇的食物蘋果 )同時,將食物吃掉并且動態(tài)自身增加一節(jié), 這里我們是這樣實現(xiàn)的: 首先實現(xiàn)的是食物的隨機出現(xiàn),在某個食物被吃掉的同時,我們要立即產生出下一個食物的坐標,我們用到的是一個隨機函數產生出下一個食物的坐標,但是這個坐標必須僅僅在 0—23 之間,因為我們地圖采用的是一個 24 維的二維數組表示的,地圖每個橫坐標縱坐標的范圍是0—23,但是,這里注意一個特別重要的問題,就是每次隨機產生的食物坐標不13 能出現(xiàn)在當前 蛇身上,我們必須加一個判斷,如果產生的坐標在蛇身上,必須重新生成 , 一直到產生一個在地圖上 并且不在蛇身上的食物坐標為止;當蛇頭坐標的下一個前進方向的坐標和食物坐標相等時, 我們在這里是將食物坐標改變成當前蛇頭坐標, 并且蛇尾坐標不變, 蛇身長度增加一個單位, 這樣就動態(tài)的現(xiàn)實出來蛇吃食物自身增加一個的效果。 生命周期的問題: 在我們解決上述功能的同時,我們不得不考慮一個問題,那就是蛇的生命周期問題, 就是蛇在身條件下會死亡,死亡的結果會是怎么樣,我們在這里做了一個判斷,就是蛇遇到地圖周圍的墻和遇到自己的身體蛇會死亡,生命周期結束,于此同時記錄下當前玩家所得的分數,比較分數來判斷玩家的能力程度, 那么我們怎么判 斷蛇頭撞墻和蛇頭撞到自身呢?繼承上一個問題的解決方式,蛇身用到的是 Cpoint 類的一個一維數組表示,地圖用到的是一個二維數組表示,當蛇頭節(jié)點的左邊和二維數組邊界值相等時,或者蛇頭坐標變?yōu)樯咦陨淼淖鴺藭r,蛇死亡,生命周期結束,關閉定時器函數 Timer(),初始化游戲界面,記錄當前分數,重新等待游戲開始。 到此為止,貪吃蛇游戲的大概思路就解決了。 系統(tǒng)的硬件構建 系統(tǒng)硬件平臺采用的是 PXA270S實驗開發(fā)板 , 開發(fā)板提供了多種 CPU內核共大家使用,具體的內核信息詳細如下: ARM:支持的處理器包括 ARM720T、 ARM920T、 ARM1020T、 StrongARM、Xscale。 MIPS:支持的處理器包括 MIPS II/32(帶浮點運算)、 MIPS II/3(不帶浮點運算)、MIPS1 MIPS IV/64(帶浮點運算)、 MIPS IV/6(不帶浮點運算) 。 SHx:支持的處理器包括 SH SH3 DSP、 SH4。 X86:支持的處理器包括 48 58 Geode、 Pentium I/II/III/IV。 通過大家瀏覽這幾種內核大家已經知道了 PXA270S 實驗開發(fā)版的強大功能,在這里,我 們程序所用的是 ARM 內核,我們所用的環(huán)境是 WINCE 系統(tǒng),我們在此基礎上進行的程序的開發(fā)和設計。另外,本次程序的設計對硬件的性能要求比較要,主要包括一下幾個方面: 14 ① 強 大的 CPU 處理運算能力 ; ② 強大的數據存儲能力 ; ③ 強大的顯示能力 ; ④ 能提供多種外設接口 ; ⑤ 具有高性能、低功耗、小尺寸、易于升級等 ; ⑥ 具有較大的兼容性和擴展性 ; ⑦ 便于程序的測試和內核的下載 。 經考慮我們在這里采用的是 PXA270S 中 ARMV4Irel 開發(fā)平臺, 并在其基礎上配備了豐富的硬件資源,但本次設計使用到的硬件資源只包括帶觸摸 屏的液晶顯示屏、 USB 接口、網線接口、 lash、 NandFlash、 Rs232 串口、 ADC、 Jl’AG接口等。 其中 NorFlash 用于裝載 Boot,主要負責系統(tǒng)硬件的初始化和操作系統(tǒng)的引導,當操作系統(tǒng)被裝載到 SDRAM 中之后,將系統(tǒng)控制權交給操作系統(tǒng) ;NandFlash 用于存儲操作系統(tǒng)內核鏡像、文件系統(tǒng)和大量的數據圖象 ; 帶觸摸屏的液晶顯示 用來顯示程序運行的結果和觸摸控制游戲。 系統(tǒng)的軟件組成 系統(tǒng)所需要的軟件 PC機操作系統(tǒng) Win2020或以上, , WinCE500標準 SDK,PXA270S平臺 SDK。 ClassWizard(類向導)簡介 在我們運用 ,我們不可避免的會遇到各種各樣的類的調用,因此 , 之前我們必須學會運用類向導來進行程序的設計。 從廣義上講,ClassWizard與類的關系和 AppWizard與應用程序的關系是相同的。 ClassWizard 通過生成實現(xiàn) CPP文件,以及一個帶有合適存根函數的頭文件,來幫助你開始編寫新類。用實際的代碼填充這些函數則是你的責任。 ClassWizard在四個區(qū)域提供幫助,它可以為如下 目的生成代碼 : 從接收消息或管理控件窗口的許多 MFC 類中的一個派生出來的新類 , 處理消息的成員函數。 OLE/ActiveX方法、屬性和15 事件觸發(fā)。用于輸入到對話控件中的數據交換和驗證函數。 ClassWizard識別和支持 MFC基類,它們用某種方法與用戶進行交互。除了少數例外的類(例如CRecordSet和 CHttpServer)之外,基類都是由 CCmdTarget派生而來,它們能夠對消息作出反應,并能夠管理對話框中的控件。大約有 50多個 MFC基類,你可以使 ClassWizard從這樣的類中創(chuàng)建一個派生類。訪問 ClassWizard不能從一個空的項目中訪問 ClassWizard。項目中至少應有一個 RC文件,即使這個 RC文件是空的。一旦 RC文件被附加到項目之中( AppWizard可以自動完成這項工作),你就可以通過從 View菜單中選擇 ClassWizard命令來調用 ClassWizard對話了。關于ClassWizard,有兩點不大明顯。首先,它的服務完全是可選的。你在開發(fā)自己項目的過程中,如果自己愿意的話,從頭至尾,都可以不處理 ClassWizard。其次,你可以使用 ClassWizard向 MFC項目添加新類,即使 該項目不是 AppWizard創(chuàng)建的。 ClassWizard編譯項目的類的數據庫,并將它存儲在與項目同名且擴展名為 CLW的一個文件之中。如果你 一直都是 ClassWizard為項目創(chuàng)建新類,那么CLW文件可以保持最新。不過,在 VisualC++中,你與 ClassWizard之間并不是全有或全無的關系,你可以自由地編寫新類,或者從當前項目之外的其他源文件中復制代碼。在一個類不是以 ClassWizard為起源的情況下,有一個簡單的方法可以更新 CLW數據庫。在你使用了 Project菜單上的 Add To Project命令向項目添加新類源文件之后,請刪除 CLW文件,并再次調 ClassWizard。 Visual C++將檢測到數據庫不存在了,并提供重新創(chuàng)建它的服務。 ClassWizard對話圖(下圖)顯示了主 ClassWizard對話框。之所以叫它為 “ 主 ” 對話,是因為 ClassWizard可以在20多種不同的對話中顯示自己,究竟在哪一個對話中顯示需取決于環(huán)境。圖中的對話充當著到 ClassWizard主入口的角色,將
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1