版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p> 課程設(shè)計題目:瘋狂玻璃球</p><p> 2013年 11月 25 日</p><p><b> 目錄</b></p><p> 一、課程設(shè)計說明3</p><p> 課程設(shè)計題目-
2、---------------------------------------------------3</p><p> 瘋狂玻璃球設(shè)計架構(gòu)概述------------------------------------------5</p><p> 瘋狂玻璃球有關(guān)算法設(shè)計概述--------------------------------------8</p><
3、p> 瘋狂玻璃球游戲流程及操作說明-----------------------------------12</p><p> 設(shè)計心得-------------------------------------------------------15</p><p> 參考文獻---------------------------------------------------
4、----15</p><p> 附課程設(shè)計評分表-----------------------------------------------16</p><p><b> 一、課程設(shè)計說明</b></p><p> 1。在cnki中查閱與ARM體系結(jié)構(gòu)與WINCE程序設(shè)計相關(guān)的論文,了解ARM 嵌入式系統(tǒng)課題方向。</p&
5、gt;<p> 2。課程設(shè)計題目除給定的題目外,可以自擬與ARM嵌入式系統(tǒng)相關(guān)的課題。</p><p> 3。課程設(shè)計報告規(guī)定在10-16頁即可。</p><p> 4。課程設(shè)計報告在13周周二下午交完。</p><p><b> 二、課程設(shè)計題目</b></p><p><b> 題目
6、一 CEZIP</b></p><p> 眾所周知,最近幾年來,基于WINCE平臺的各種設(shè)備是越來越多,這得益于微軟對WINDOWS CE操作系統(tǒng)的大力推廣,當然這和WINDOWS CE系統(tǒng)的優(yōu)越性是分不開的。但運行這個系統(tǒng)的設(shè)備往往沒有像PC機那樣有海量的存儲介質(zhì),因此磁盤空間對于這些設(shè)備是非常寶貴的,往往是能節(jié)約1K是1K,所以如果能對這些設(shè)備上的文件進行壓縮存儲或?qū)Υ笪募M行分割存儲,就能使用
7、戶在有限的空間中存儲更多的數(shù)據(jù),這將會對用戶有莫大的幫助。</p><p> 題目二 SmartBoard</p><p> 手機由于體積的局限性,使得屏幕鍵盤空間都受到限制,從而在手機上查找資源的操作顯得比較復(fù)雜和麻煩,因此就有了本程序的創(chuàng)作思路,即將查找手機上各種資源(包括文件、SIM卡聯(lián)系人、短消息、其他應(yīng)用程序)的操作集成到一起,采用統(tǒng)一的操作界面和簡單易行的方式提供給用戶,目
8、標只有一個,那就是盡量簡化用戶操作,使手機資源的利用率達到最大化。</p><p><b> 題目三 瘋狂玻璃球</b></p><p> 本游戲是微軟SMART PHONE平臺下的手機游戲,由于平臺的特殊性,所以在游戲的架構(gòu)和設(shè)計上既要符合游戲的特點,又要考慮到與設(shè)計其他PC游戲的不同。難點在于手機資源是很有限的,不能直接從設(shè)計PC游戲的架構(gòu)直接搬到SMART
9、PNONE游戲上,架構(gòu)設(shè)計的變化是必然的。在本游戲中我們提出了一套全新的設(shè)計架構(gòu),充分考慮到了C#語言的特點,以及.NET平臺的優(yōu)點。在架構(gòu)中擯棄了以前手機游戲設(shè)計中,雖然采用面向?qū)ο箝_發(fā)但是沒有充分利用面向?qū)ο蟮牟蛔?,大量采用了當前先進的設(shè)計模式</p><p> 題目四 Mail Man</p><p> 這個基于嵌入式平臺SMART PHONE電子郵件收發(fā)管理系統(tǒng)(MAIL M
10、AN是一個電子郵件客戶端軟件。它以很小的體積,消耗很少的系統(tǒng)資源,而實現(xiàn)了非常強大的功能。它支持全部的INTERNET 電子郵件功能。該電子郵件客戶端軟件比WEB MAIL系統(tǒng)(網(wǎng)頁郵件系統(tǒng))提供更全面的功能。使用我們的MAIL MAN統(tǒng)。登陸時不用下載網(wǎng)站頁面內(nèi)容,速度更快;使用本系統(tǒng)收到的和曾經(jīng)發(fā)送過的郵件都保存在自己的SMART PHONE,不用上網(wǎng)就可以對舊郵件進行閱讀和管理。在收發(fā)郵件時,該系統(tǒng)必須連接到INTERNET。&l
11、t;/p><p><b> 題目五 網(wǎng)絡(luò)軍棋</b></p><p> 網(wǎng)絡(luò)棋牌類游戲的應(yīng)用已經(jīng)深入人心,其中的軍棋更是我們項目組成員最喜愛的游戲。隨著POCKET PC廣泛推廣和應(yīng)用以及我們對軍棋游戲的一份熱愛之情,我們決定自己親手寫一個軍棋游戲并且把他移植到POCKET PC去,讓更多的軍棋愛好者,可以隨時隨地進入有趣的軍棋世界中。</p><
12、p> 題目六 Pocket Dictionar</p><p> 本詞典功能完備:本機附帶二萬六千多詞的漢英字庫。在用戶能登陸到INTERNET的場合,更是可以通過我們提供的WEB SERVICE獲得強大的在線英漢,英英單詞查詢。用戶可對字庫進行DIY,隨用戶需要可對字庫執(zhí)行:添加新詞條,修改原詞條,刪除無用詞條。當用戶從網(wǎng)上下載了我們的字庫升級包到PC機后,能夠使用我們的同步機制來實現(xiàn)PC和PPC的同
13、步,使兩地的字庫得到雙向更新。用戶也可以在對PPC上的字庫進行擴充后將增量部分同步到PC機上保存。庫的解釋也可以加入自己的批注;也可以將不滿意的單詞及解釋刪除。</p><p><b> 題目七 智能閱讀器</b></p><p> 閱讀器(運行于WINCE平臺):閱讀器滿足一般現(xiàn)實中閱讀書籍時的需求,除一般閱讀器所具有的功能:索引,書簽,搜索,定位等。還可以一鍵
14、跳轉(zhuǎn),自動滾屏。電子書生成器(運行于WINDOWS 平臺):讀入多個TXT文件連接成文章正文(順序按照讀入順序)??墒謩釉O(shè)置章節(jié),也可以根據(jù)用戶輸入的章節(jié)數(shù)目分自動生成章節(jié)(按照文章的長度等分)。</p><p> 題目八 嵌入式電子點菜系統(tǒng)設(shè)計</p><p> 設(shè)計一種基于GSM無線通信技術(shù)、嵌入式系統(tǒng)技術(shù)、ADS1.2開發(fā)平臺、三星S3C44B0X微控制器、μCOS-Ⅱ嵌入式操作
15、系統(tǒng)以及觸摸屏技術(shù)的新型點菜方式, 為餐飲業(yè)走向全面數(shù)字化提供解決方案。完成點菜終端的軟硬件設(shè)計,硬件設(shè)計主要是LCD、觸摸屏連接的設(shè)計,軟件設(shè)計主要是點菜應(yīng)用程序和GSM發(fā)送程序的設(shè)計、編寫和調(diào)試。</p><p> 三、瘋狂玻璃球設(shè)計架構(gòu)概述</p><p> 3.1游戲總體設(shè)計思想</p><p> 本游戲是微軟SmartPhone平臺下的手機游戲,由于
16、平臺的特殊性,所以在游戲的架構(gòu)和設(shè)計上既要符合游戲的特點,又要考慮到與設(shè)計其他pc游戲的不同。難點在于手機資源是很有限的,不能直接從設(shè)計pc游戲的架構(gòu)直接搬到SmartPhone游戲上,架構(gòu)設(shè)計的變化是必然的。在本游戲中我們提出了一套全新的設(shè)計架構(gòu),充分考慮到了C#語言的特點,以及.NET平臺的優(yōu)點。在架構(gòu)中擯棄了以前手機游戲設(shè)計中,雖然采用面向?qū)ο箝_發(fā)但是沒有充分利用面向?qū)ο蟮牟蛔悖罅坎捎昧水斍跋冗M的設(shè)計模式。</p>
17、<p> 在本游戲中以狀態(tài)為主線,將游戲分為兩大模塊,用戶界面層和邏輯處理層(見圖1)。每一層中都將狀態(tài)分離,用面向?qū)ο罄^承多態(tài)的方式,對每個狀態(tài)進行有效管理。對于用戶的操作,則采用了“命令”的方式將用戶的每一個動作都抽象成一個“Command”類去執(zhí)行。另外,對于一些特殊的操作,比如:貼圖;我們采取了再次封裝微軟類庫的方式,使所有的操作都集中到一個類中處理。如此設(shè)計使得每個類的分工相當明確,避免了無效代碼的出現(xiàn),且從邏輯
18、復(fù)雜度上降低了出錯的可能,在代碼的維護上也起到了至關(guān)重要的作用。</p><p><b> 圖1</b></p><p><b> 3.2用戶界面模塊</b></p><p> 在用戶界面模塊中,最主要的工作是將所繪制的圖形進行輸出。其次,在這一層面中對不同的界面采用了不同的狀態(tài)加以處理,且這些狀態(tài)都派生于一個接口父
19、類,另外對于各種凌亂的狀態(tài)采用了狀態(tài)管理類來統(tǒng)一的管理,狀態(tài)之間的轉(zhuǎn)換也是由該類負責(zé)執(zhí)行的。在這一層次中接收用戶的操作信息,并將信號傳入相應(yīng)得邏輯處理模塊中進行處理。(對整個層次的描述見圖2)</p><p><b> 圖2</b></p><p><b> 圖3 </b></p><p><b> 3.3
20、邏輯處理模塊</b></p><p> 邏輯處理模塊是整個游戲的核心,它處理一切從用戶界面?zhèn)魅氲南?,并做出相?yīng)得處理。在整個游戲中,每一個用戶層的狀態(tài)都相應(yīng)有一個邏輯處理模塊。在這些邏輯層模塊中游戲主邏輯(GameRun)的模塊是整個游戲的核心處理區(qū),幾乎所有的算法都集中于此。</p><p> 該邏輯處理模塊中,還是采用了狀態(tài)模式,對整個游戲過程加以控制。在這些狀態(tài)分別
21、由:慢落狀態(tài)(downslow)、快落狀態(tài)(downfast)、選擇玻璃球狀態(tài)(selectblock)、消狀態(tài)(cleanblock)、暫停狀態(tài)(Pause)等等,幾個主要的狀態(tài)組成,并且仍舊采用一個狀態(tài)管理類對所有的狀態(tài)加以管理,負責(zé)狀態(tài)的轉(zhuǎn)換。</p><p><b> 圖4</b></p><p> 此外該狀態(tài)中也處理用戶的按鍵事件,并根據(jù)用戶消息急迫程度
22、采取了,同步處理和異步處理的方式,使得程序的開銷大大降低。對于每一種按鍵事件,都抽象成了命令來處理,每個命令對應(yīng)一個處理類,這樣使得按鍵處理和算法模塊式相互分離的,提高了代碼的完整性、可移植性。</p><p><b> 圖5</b></p><p> 瘋狂玻璃球有關(guān)算法概述</p><p><b> 4.1多線程處理</
23、b></p><p> 在整個游戲中涉及到了并發(fā)的問題,即用戶事件的處理和游戲邏輯的處理是同步執(zhí)行的,這就使得必須采用多線程來進行處理,我們在設(shè)計游戲時充分考慮到了這種情況,采用雙線程的方式來控制整個游戲。即主線程負責(zé)對用戶按鍵事件的接收,而游戲線程則對游戲的邏輯進行了全方位的控制。此外由于多線程,必然導(dǎo)致臨界區(qū)的出現(xiàn),在設(shè)計算法時注意到了這一情況,并用相應(yīng)得方法加以了控制(圖7)。</p>
24、<p><b> 圖6</b></p><p><b> 圖7(臨界區(qū)處理)</b></p><p><b> 4.2多緩沖控制</b></p><p> 整個游戲是大部分是采用貼圖的方式完成對整個界面的繪制,在整個游戲中有很多紛繁復(fù)雜的繪制工作要做,且這些繪制都是異時發(fā)生的,這就
25、提出了一個問題如果頻繁的對界面進行繪制必會導(dǎo)致屏幕的閃動,使整個游戲陷入一個混亂的局面,為解決這一難題,采用的緩沖控制機制,即先將要繪制的圖形畫到一張緩沖上,在每次游戲一個大循環(huán)結(jié)束之后再進行對游戲界面的繪制工作,這樣保證了每次繪制時間間隔的平均性,又不會因為頻繁的刷新屏幕而是整個屏幕閃動(圖8)。</p><p><b> 圖(8)</b></p><p> 但
26、是,這么處理并能完全解決游戲的流暢性,由于游戲的特殊性,如果每次對每種物體都進行重繪將導(dǎo)致效率的低下,更糟的是,對于靜止玻璃球的繪制是采用了每個球繪制的方式,使得每次都要進行一個O(n2)的繪制,這就使得開銷極大,并且隨著球數(shù)的增加這種狀況會越加嚴重,游戲速度會變得越來越慢,以致到玩家不能忍受的地步。為此程序設(shè)計者對算法作了極大的調(diào)整。設(shè)計者觀察到,整張畫面不動的元素居多,尤其是那個二維的靜止球在消去以前始終是靜止不動的,所以在“sel
27、ectblock”狀態(tài)時將界面繪制到另一張緩沖中,既保存了靜態(tài)的界面,并在“downslow”和“downfast”狀態(tài)時直接利用這張緩沖進行繪制靜態(tài)的畫面,這就避免了繪制二維玻璃球O(n2)算法的頻繁出現(xiàn),大大的提高了效率。(圖9、圖10)</p><p><b> 圖(9)</b></p><p><b> 圖(10)</b></p
28、><p><b> 4.3游戲核心算法</b></p><p> 在對游戲的主要算法的描述上,介紹在游戲中非常關(guān)鍵的算法。判斷消層的算法,首先對于每一個玻璃球,采用了如下的數(shù)據(jù)結(jié)構(gòu)進行控制。其中curObjectId表示當前玻璃球采用圖片索引,而backColorId則表示當有道具存在時道具的圖片索引,且該數(shù)據(jù)結(jié)構(gòu)還定義了當前塊所處的狀態(tài)。</p>&l
29、t;p> public class GameObject : IObjectChange</p><p><b> {</b></p><p> public GameObject(int objId)</p><p><b> {</b></p><p> curObjectId
30、 = objId;</p><p> backColorId = curObjectId;</p><p> curObjectState = GameObject.ObjectState.Idle;</p><p><b> }</b></p><p> /// <summary></p>
31、;<p> /// 在picturesImage中的index</p><p> /// </summary></p><p> private int curObjectId;</p><p> /// <summary></p><p> /// 道具的背景顏色,僅當isColorRelat
32、ed == true時有效</p><p> /// </summary></p><p> protected int backColorId;</p><p> /// <summary></p><p> /// 當前所畫的圖形在picturesImage中的index</p><p&
33、gt; /// </summary></p><p> private int curFrameIndex;</p><p> /// <summary></p><p> /// Down下落狀態(tài)</p><p> /// </summary></p><p> pub
34、lic enum ObjectState</p><p><b> {</b></p><p><b> Down = 0,</b></p><p><b> Clearing,</b></p><p><b> Idle,</b></p&g
35、t;<p><b> Cleared</b></p><p><b> }</b></p><p><b> ?。?lt;/b></p><p> 在用戶手冊中可以看到游戲的消層規(guī)則,實際上玩家遇到的消層狀況完全是由于這個算法所導(dǎo)致的,當一個新的塊掉下來后,算法會去掃描所有的玻璃塊,對于
36、被掃描到的每一塊都進行是否可消的判斷,即是否橫向、縱向、斜向有沒有連續(xù)的三個球所對應(yīng)得curObjectId有沒有相同的如果有一組相同即可消(圖11)</p><p><b> 圖11</b></p><p> 五、瘋狂玻璃球游戲流程及操作說明</p><p><b> 5.1游戲流程:</b></p>
37、<p> 在執(zhí)行程序之后,會出現(xiàn)如下邊的歡迎畫面,選中相應(yīng)的菜單選項進入相應(yīng)的游戲流程。</p><p><b> 菜單功能說明:</b></p><p> 開始游戲:進入游戲主界面。</p><p> 設(shè)置游戲:游戲的基本設(shè)置,包括速度和時間設(shè)置,速度越快,時間越短游戲難度越高。</p><p>
38、 最高分:查看游戲的最高分,希望你可以坐到第一名哦。</p><p> 幫助:簡單的幫助文檔。</p><p> 退出游戲:退出應(yīng)用程序。</p><p> 以下是各子界面的截圖:</p><p> 5.2游戲操作介紹:</p><p><b> 5.3游戲規(guī)則</b></p>
39、;<p> 游戲需要在規(guī)定時間內(nèi),達到規(guī)定的分數(shù)才可以升級,在游戲設(shè)置中用戶可以指定游戲的初始速度,和沖關(guān)時間,速度越快,時間越短,游戲的難度就越高。游戲中,如果玩家能夠?qū)?個顏色相同的球(彩球表示任意顏色)消去。如下圖。</p><p> 游戲中如果能夠得到連擊,分數(shù)會加倍。</p><p> 5.4關(guān)于道具的使用</p><p> 游戲中共
40、有兩種類型的道具,一種是自動使用的道具(包括彩球和閃電),另一種是需要玩家控制使用的道具(包括烏龜和炸彈)。自動道具只需要玩家消去道具所在玻璃球則會自動發(fā)揮功能,控制道具在玩家消去此道具后或得,存放在道具條中,玩家可以按*,#鍵選擇,在玩家按0鍵后,被選中的道具(加大顯示的道具)會發(fā)揮功能。</p><p><b> 道具介紹:</b></p><p> 彩球:可
41、以和任意自動組合,只要達到消去條件。</p><p> 閃電:消去與之顏色相同的屏幕上所有的玻璃球。</p><p> 烏龜:移動速度恢復(fù)到初始狀態(tài)10秒,速度增加有十分有用。</p><p> 炸彈:使用后消去屏幕上玻璃球的最后一行。</p><p><b> 設(shè)計心得</b></p><p
42、> 這次設(shè)計中本人在架構(gòu)方面突破了原來游戲設(shè)計的思想,在前人的基礎(chǔ)上提出了自己獨創(chuàng)的一套游戲架構(gòu),并在實踐中的到了肯定,這種設(shè)計思想使的代碼的模塊化非常的清晰,使得程序的修改和添加變得相當簡單,且不會破壞整個架構(gòu)。最明顯例子是,在遇到繪制靜止玻璃球時出現(xiàn)效率低下,由于架構(gòu)的優(yōu)越性使得修改算法不會去破壞其他模塊的代碼,用相當小的代價完成了算法的替換。</p><p> 在算法方面,我盡量采用了一些高效的算
43、法,比如:兩次緩沖的應(yīng)用,尤其是第二次緩沖的應(yīng)用是整個游戲的質(zhì)量大大的提高了。</p><p> 總體來說,整個項目從代碼構(gòu)架到算法使用都盡量朝著,程序高效、易維護、可讀性好,這幾個方面發(fā)展的。</p><p><b> 參考文獻</b></p><p> 1、《C#入門經(jīng)典》 </p><p> Karli W
44、atson 等編寫,2003.12月。清華大學(xué)出版社ISBN 7-302-05333-2</p><p> 2、《Visual C++網(wǎng)絡(luò)游戲建模與實現(xiàn)》 </p><p> 蘇羽 等編寫,2003.6月。北京科海電子出版社ISBN 7-900107-97-5</p><p> 3、《C#技術(shù)揭秘》</p><p> Tom A
45、rcher ,Andrew Whitechapel編寫 2003.7月。 機械工業(yè)出版社 ISBN 7-111-12257-7</p><p> 4、 《使用Microsoft .NET框架精簡版編寫移動游戲》</p><p> Ravi Krishnaswamy編寫 2004.8月 《msdn開發(fā)精選》 </p><p> 5、 《使用 .NET 框架精簡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- zstz直立型玻璃球灑水噴頭
- 玻璃球粘連圖像分割的研究.pdf
- 玻璃球落錘沖擊破碎實驗及分析.pdf
- gb18428-2010 自動滅火系統(tǒng)用玻璃球
- 彩色玻璃玻璃課程設(shè)計
- 基于機器視覺的玻璃球損傷檢測識別系統(tǒng).pdf
- 嵌入式wince課程設(shè)計報告(黑白棋)
- 11610.20mm玻璃球床流動轉(zhuǎn)捩的微距piv實驗研究
- 赤道柔性支撐式有機玻璃球探測器結(jié)構(gòu)研究.pdf
- 玻璃球(20 mm)叉排多孔介質(zhì)流態(tài)特征實驗研究.pdf
- 23918.多孔介質(zhì)流動特征實驗研究——水晶玻璃球填充床
- 玻璃鋼立式儲罐課程設(shè)計
- 機械原理健身球設(shè)計課程設(shè)計
- 機械原理課程設(shè)計--玻璃切割機
- 乒乓球游戲模擬設(shè)計課程設(shè)計
- 數(shù)電課程設(shè)計--乒乓球游戲設(shè)計
- 球頭螺紋軸承數(shù)控加工課程設(shè)計
- eda課程設(shè)計——-籃球球比賽計分器
- eda課程設(shè)計——籃球球比賽計分器
- 課程設(shè)計--乒乓球比賽游戲機設(shè)計
評論
0/150
提交評論