




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 唐進(jìn) 基于Windows Mobile的PlayGame游戲設(shè)計(jì) 課程論文首頁院、系(部)電信系專業(yè)電子信息工程班級(jí)電信102學(xué)號(hào)010706222姓名唐進(jìn)課程教師黃春先課程名稱嵌入式系統(tǒng)分析論文題目基于Windows Mobile的PlayGame游戲設(shè)計(jì) 成績?cè)u(píng)語 簽字: 年 月 日復(fù)核人意見 簽字: 年 月 日基于Windows Mobile的PlayGame游戲設(shè)計(jì) 唐進(jìn)摘要:設(shè)計(jì)基于移動(dòng)智能設(shè)備Windows Mobile下的Pocket PC2003開發(fā)平臺(tái),采用C#語言進(jìn)行編程,在 Visual Stuido 2005 環(huán)境下實(shí)現(xiàn)仿真,描述了一種在規(guī)定時(shí)間內(nèi),距離不超過兩個(gè)拐點(diǎn)
2、并且圖形連線間無其他圖形遮擋的情況下,相同圖形通過動(dòng)畫連線相消的PlayGame連連看小游戲設(shè)計(jì)方案。 關(guān)鍵詞:開發(fā)環(huán)境 界面設(shè)計(jì) 模塊功能簡介1 設(shè)計(jì)目標(biāo)及基本環(huán)境簡介 設(shè)計(jì)基于移動(dòng)智能設(shè)備Windows Mobile下的Pocket PC2003開發(fā)平臺(tái),采用C#語言進(jìn)行編程,在VS2005環(huán)境下實(shí)現(xiàn)仿真。該設(shè)計(jì)方案描述了一個(gè)在規(guī)定時(shí)間(計(jì)數(shù)器最大值為200)的情況下,距離不超過兩個(gè)拐點(diǎn)并且中間無其他圖形阻擋兩個(gè)相同圖形通過動(dòng)態(tài)縮小、閃爍連線實(shí)現(xiàn)相消。在此期間可實(shí)現(xiàn)“暫?!庇螒?、“繼續(xù)”游戲、“關(guān)閉”游戲等界面功能,并出現(xiàn)相應(yīng)的界面和“模擬按鍵”圖形。在游戲?qū)⒁Y(jié)束(小于計(jì)數(shù)器的警戒值30
3、的時(shí)候)界面的圖像卡片出現(xiàn)“閃爍躁動(dòng)”效果,以提醒用戶游戲進(jìn)程;若在規(guī)定時(shí)間內(nèi)消去所有的圖片則出現(xiàn)“獲勝”界面,否則視為游戲失敗,并退回到游戲未開始的初始界面,此時(shí)用戶可以點(diǎn)擊屏幕的“模擬按鍵”圖形“Start”開始新一輪的游戲,或者點(diǎn)擊“關(guān)閉”按鈕結(jié)束游戲。2 基于Windows CE的平臺(tái)介紹 WindowsCE是微軟公司嵌入式、移動(dòng)計(jì)算平臺(tái)的基礎(chǔ),它是一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng)。 圖1 Windows CE的平臺(tái)簡介2.1移動(dòng)智能設(shè)備Windows Mobile簡介Windows Mobile,是 Microsoft 用于 Pocket
4、 PC 和 Smartphone 的軟件平臺(tái)。Windows Mobile 將熟悉的 Windows 桌面擴(kuò)展到了個(gè)人設(shè)備中。Windows Mobile是微軟為手持設(shè)備推出的“移動(dòng)版Windows”,使用Windows Mobile操作系統(tǒng)的設(shè)備主要有PPC手機(jī)、PDA、隨身音樂播放器等。2.2 Pocket PC開發(fā)平臺(tái)簡介Pocket PC(簡稱PPC)是基于微軟的Windows Mobile操作系統(tǒng)的一種PDA掌上電腦。Pocket PC是一種手持設(shè)備,可幫助存儲(chǔ)并檢索電子郵件、聯(lián)系人和約會(huì)信息,播放多媒體文件,玩賞電子游戲,借助MSN Messenger交換文本消息,瀏覽Web內(nèi)容,
5、能夠與臺(tái)式機(jī)實(shí)現(xiàn)信息交換和同步。 2.3 Visual Stuido2005簡介Visual Studio 2005是基于.NET2.0框架的,同時(shí)也能開發(fā)跨平臺(tái)的應(yīng)用程序,如開發(fā)使用微軟操作系統(tǒng)的手機(jī)的程序等,包含代碼測試功能。這個(gè)版本的Visual Studio 包含有眾多版本,分別面向不同的開發(fā)角色。同時(shí)還永久提供免費(fèi)的Visual Studio Express 版本。 3 游戲界面設(shè)計(jì)設(shè)計(jì)背景寬度和高度 public const int WIDTH = 216; / 集合的寬度(背景圖) public const int HEIGHT =240;/ 集合的高度 設(shè)計(jì)背景畫面上所有的卡片
6、的左上角的x、y 坐標(biāo)初始值: public const int LEFT = 10;/ 設(shè)定卡片集合 public const int TOP = 38; / 集合的左上角的y 坐標(biāo) 設(shè)計(jì)單張卡片的寬度和高度 public const int WIDTH =24; / 卡片寬度 public const int HEIGHT = 24; / 卡片高度設(shè)計(jì)時(shí)間條的放置位置、寬度及高度 public const int LEFT = 11;/ 計(jì)時(shí)器左上角x 坐標(biāo) public const int TOP = 10; / 計(jì)時(shí)器左上角y 坐標(biāo) public const int WIDTH = 1
7、90; / 計(jì)時(shí)器寬度 public const int HEIGHT =9;/ 計(jì)時(shí)器高度 游戲界面圖片繪制、調(diào)用 將用到的圖片命名后放到Resources文件夾下(圖片源)以便調(diào)用,利用離屏技術(shù)通過在虛擬平臺(tái)(后臺(tái))上繪制圖像,再將虛擬平臺(tái)上的圖像復(fù)制到物理平面(前臺(tái))實(shí)現(xiàn)界面顯現(xiàn),其中4張主界面圖片的索取是用下面函數(shù)調(diào)用: this.gxPhys = this.CreateGraphics();/ 前臺(tái)繪圖面 this.imageOff = Resources.Background;/ 后臺(tái)圖像 this.gxOff = Graphics.FromImage(this.imageOff)
8、;/ 后臺(tái)繪圖面 this.imageBack = Resources.Background;/ 背景源圖像 this.images = new Bitmap3; / 游戲狀態(tài)源圖像this.images(int)Status.MainMenu = Resources.MainMenu;this.images(int)Status.Won = Resources.Won; this.images(int)Status.Paused=Resources.Paused; 7 圖2 游戲初始界面設(shè)計(jì) 圖3 游戲運(yùn)行界面設(shè)計(jì) 圖4 游戲暫停界面設(shè)計(jì) 圖5 游戲獲勝界面設(shè)計(jì)總設(shè)計(jì)思路圖片相關(guān)參數(shù)屬性的設(shè)
9、置設(shè)計(jì)圖片源放置被調(diào)用圖片卡片的隨機(jī)獲取動(dòng)態(tài)連線卡片動(dòng)態(tài)效果(選中標(biāo)示、躁動(dòng))4 各模塊程序設(shè)計(jì)框架 圖6 模塊框架設(shè)計(jì) 4.1 參數(shù)屬性設(shè)置模塊 由于游戲中圖形的繪制選中圖標(biāo)的繪制等都需要計(jì)算目的位置的坐標(biāo)、源圖像的坐標(biāo)等因此將這些屬性抽象成一個(gè)基類Object,文件命名為Mainobject,將此類作為其他對(duì)象的基類,并可被繼承。程序?qū)崿F(xiàn)對(duì)圖片源中圖進(jìn)行寬度、高度、繪制位置坐標(biāo)、大小、顏色等屬性的設(shè)置后,使之顯示在智能移動(dòng)設(shè)備界面合適的上以適應(yīng)界面大小和美觀設(shè)計(jì)。4.2圖片個(gè)體和集合類處理模塊功能 圖片個(gè)體處理功能放在文件Picture中,主要是在繼承基類的情況下處理單個(gè)圖片參數(shù)屬性設(shè)置、
10、移動(dòng)位置以及動(dòng)畫作用設(shè)置;圖片集合類放在文件Collection中處理圖像集合相關(guān)的事務(wù)如圖片功能處理,選擇,繪制,重置以及對(duì)鼠標(biāo)單擊設(shè)備的處理。4.2.1卡片的隨機(jī)獲取實(shí)現(xiàn)模塊 設(shè)置卡片類型為20種,每一種卡片都有5個(gè)圖片,每個(gè)圖片的大小為24*24,游戲界面大小為212*240,總共可容納90張圖片。利用animCount索引圖片的整體數(shù)量,animIndex指采用哪一張圖片,利用隨機(jī)函數(shù)在0(ANIM_MAX-1)隨機(jī)選擇一張圖片: 圖7 20種卡片集合public Picture(Game game, Image image, ImageAttributes imageAttr, in
11、t left, int top): base(game, image, imageAttr) SetSrc(left, top);/ 設(shè)置對(duì)象源位置 Resize(WIDTH, HEIGHT);/ 設(shè)置對(duì)象大小 this.animCount = image.Height / HEIGHT; / 計(jì)算動(dòng)畫圖像索引整體數(shù)量 this.animIndex = game.Random.Next(0, ANIM_MAX-1); / 設(shè)置動(dòng)畫圖像索引數(shù) Reset(); / 初始化將所有的卡片圖形都繪制到游戲界面上 public void Reset()/ 重置集合4.2.2卡片的閃動(dòng)功能實(shí)現(xiàn)模塊卡片的抖
12、動(dòng)是用坐標(biāo)的移動(dòng)來實(shí)現(xiàn)的,利用Radom.Next(int)返回一個(gè)小于2的隨機(jī)數(shù),設(shè)這移動(dòng)步長,再加上頻率控制實(shí)現(xiàn)功能;由于每張圖片的背景陰影“花紋”不同,當(dāng)玩家隨機(jī)選取一張圖片的時(shí)候,由于在屏幕上存在的時(shí)間相對(duì)較短,加上視覺延遲,就會(huì)出現(xiàn)閃動(dòng)的效果,ANIM_MAX越大,this.animIndex 越小,this.animIndex this.animCount的幾率就越小,卡片閃動(dòng)的頻率就越小,而且當(dāng)游戲剩余時(shí)間小于時(shí)間警報(bào)值的時(shí)候圖片會(huì)出現(xiàn)閃爍,出現(xiàn)“躁動(dòng)”現(xiàn)象: public void Process(int timer) this.animIndex = (this.animIn
13、dex + 1) % ANIM_MAX; / 圖像索引(縱向排列)不斷變化,this.srcY不斷變化,形成了卡片的閃動(dòng) this.srcY = (this.animIndex this.animCount) ? (HEIGHT * this.animIndex) : 0;/到達(dá)計(jì)時(shí)器警告值后,抖動(dòng)卡片if (timer = Clock.WARN_VALUE) & (this.game.Random.Next(4) = 0) /降低卡片的抖動(dòng)頻率(原來的/4) Move(this.srcLeft + this.game.Random.Next(2), this.srcTop + this.ga
14、me.Random.Next(2); 4.2.3 卡片的連線算法實(shí)現(xiàn)模塊首先選定起始點(diǎn)和目標(biāo)點(diǎn)兩者之間的中心點(diǎn),以中心線為所在的行為基準(zhǔn),分別向(上)下尋找兩個(gè)拐點(diǎn),拐點(diǎn)1、拐點(diǎn)2所處的列分別等于起始點(diǎn)、目標(biāo)點(diǎn)的列;以中心線為所在的列為基準(zhǔn),分別向左(右)尋找兩個(gè)拐點(diǎn),拐點(diǎn)1、拐點(diǎn)2所處的列分別等于起始點(diǎn)、目標(biāo)點(diǎn)的行;判斷每兩張卡片之間是否連通的時(shí)候,將起始卡片作為初始點(diǎn),結(jié)束卡片的“前一張”作為終止點(diǎn),來判斷兩者是否連通;當(dāng)起始點(diǎn)和終止點(diǎn)為同一個(gè)點(diǎn)時(shí),可以直接跳過開始點(diǎn):if (srcRow = destRow) & (srcCol = destCol) return true;其他情況則分
15、為行(列)在邊界外、邊界上、邊界內(nèi)有無障礙進(jìn)行判斷:if (row this.rows) / 行在邊界外 return false;/ 不能通過 else if (row = -1) | (row = this.rows) / 行在邊界上 return true;/ 能通過 else / 行在邊界內(nèi) int step = Math.Sign(destCol - srcCol); for (int col = srcCol + (skipSrc ? step : 0); col != destCol; col += step) if (col this.cols) | / 列在邊界外 (col
16、= 0) & (col = 212) & (mouseEventArgs.Y 28) / 點(diǎn)擊窗體右上角 / 關(guān)閉窗體 Close(); else / 點(diǎn)擊窗體其它地方 / 進(jìn)入游戲主循環(huán) MainLoop(); break; case Status.Playing: if (mouseEventArgs.Y = 212) / 右上角 / 設(shè)置游戲狀態(tài)為退出 this.status = Status.Exiting; else / 窗體上部其它地方 / 設(shè)置游戲狀態(tài)為暫停 this.status = Status.Paused; else / 點(diǎn)擊窗體中部 / 讓卡片集合處理本次點(diǎn)擊 this.cards.Hit(mouseEventArgs.X,mouseEventArgs.Y); break; case Status.Exiting: / 不作任何處理 break; 5 總結(jié) 通過游戲設(shè)計(jì),進(jìn)一步了解了C# 語言的編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際產(chǎn)品授權(quán)分銷合同
- 辦公家具采購合同一
- 商品買賣合同「樣本」
- 商業(yè)地產(chǎn)買賣合同模板范文
- 公司設(shè)立投資合作合同范本
- 礦山棄渣處理合同范本
- 消防及安全整改合同履行細(xì)則
- 校企合作合同新范本
- 土地使用權(quán)出讓合同及物業(yè)銷售細(xì)則
- 躉船結(jié)構(gòu)培訓(xùn)課件
- 2025年黑龍江民族職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 年產(chǎn)60萬噸摻混肥項(xiàng)目可行性研究報(bào)告申請(qǐng)立項(xiàng)
- 2025年2月《公共安全視頻圖像信息系統(tǒng)管理?xiàng)l例》學(xué)習(xí)解讀課件
- 2025年江蘇省中職《英語》學(xué)業(yè)水平考試高頻必練考試題庫400題(含答案)
- 2025年濟(jì)寧職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 高三一?!吧媾c強(qiáng)弱關(guān)系思辨”審題立意及范文
- 2025年湖南工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2024年七臺(tái)河職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 小學(xué)數(shù)學(xué)教學(xué)中小組合作學(xué)習(xí)課件
- 2024年晉中職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 2025年茂名市高三年級(jí)第一次綜合測試(一模)物理試卷(含答案)
評(píng)論
0/150
提交評(píng)論