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

正文內(nèi)容

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

2024-12-14 01:27 本頁面
 

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