

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、班級(jí)學(xué)號(hào):姓名:日期:淮 海 工 學(xué) 院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告姓 系 學(xué) 成績(jī):成績(jī)簽名:2015年 1 月 日第 - 0 - 頁(yè) 共 21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)基于 Android 環(huán)境的俄羅斯方塊游戲設(shè)計(jì) Pazhitnov)在 1984 年 6 月利用空暇時(shí)間編寫(xiě)的游戲程序,故此得名。俄羅斯方塊的基本規(guī)則是移動(dòng)、旋轉(zhuǎn)和擺放游戲隨機(jī)產(chǎn)生的各種方塊,使之排列成完整的一行或多行并作為游戲本身很有魅力,但是要熟練掌握其中的操作和擺放技巧,難度卻不低。此軟件給用戶提供了一個(gè)展現(xiàn)自己高超技藝的場(chǎng)所,在這里,它不僅放松自己,還能感受到游戲中的樂(lè)趣。游戲區(qū)域會(huì)從頂部不
2、斷落下 8 種下墜物的一種,游戲區(qū)域右上角有一個(gè)區(qū)域可以顯下墜物在游戲區(qū)域以“擺積木”的形式出現(xiàn)。下墜物在一行或多行堆滿后就可以自動(dòng)消除,消行后會(huì)得到相應(yīng)的分?jǐn)?shù),如果當(dāng)前下墜物堆積至窗口頂端,則游戲結(jié)束。嵌入式系統(tǒng)的教學(xué)可以分為課堂理論教學(xué)、實(shí)驗(yàn)教學(xué)和課程設(shè)計(jì)三個(gè)層面。這三個(gè)層面的目標(biāo)有所不同。理論學(xué)習(xí)的主要目標(biāo)是掌握嵌入式系統(tǒng)的一般原理,例如實(shí)時(shí)調(diào)度策略、自動(dòng)控制算法等;實(shí)驗(yàn)教學(xué)的主要目的是掌握嵌入式系統(tǒng)的主要開(kāi)發(fā)流程和基本方法,例如開(kāi)發(fā)工具鏈的使用、小型應(yīng)用開(kāi)發(fā)等;課程設(shè)計(jì)的主要目的是通過(guò)實(shí)際的嵌入式應(yīng)用系統(tǒng)開(kāi)發(fā)實(shí)例掌握嵌入式系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的技能和專門知識(shí),積累實(shí)踐和工程經(jīng)驗(yàn)。第 - 1
3、- 頁(yè) 共 21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)開(kāi)發(fā)一個(gè)簡(jiǎn)單的俄羅斯方塊游戲,并達(dá)到以下要求:1、開(kāi)始游戲隨機(jī)產(chǎn)生方塊并自動(dòng)下落。右上角 2*2 預(yù)示框顯示即將出現(xiàn)的圖形;2、按“|”鍵可以暫停游戲,按”GO”鍵開(kāi)始游戲;3、點(diǎn)擊屏幕變換方塊角度,觸屏向左(右)實(shí)現(xiàn)左(右)移,向下點(diǎn)擊加速下移;4、系統(tǒng)能夠正確判斷是否滿行,并對(duì)已滿的行實(shí)現(xiàn)消行并加分。(1)方塊類:每個(gè)方塊都有自己的ID、形狀、顏色。每個(gè)方塊都限定在4*4 的矩形區(qū)域內(nèi)變幻形狀。以此矩形區(qū)域的左上方端點(diǎn)為坐標(biāo)移動(dòng)。在方塊類中定 ID 時(shí)只需要提供其 ID 即可。移動(dòng):在指定的游戲區(qū)域中移動(dòng),包括向左、右、下
4、移動(dòng)。以一個(gè)單元為單位。觸屏向左(右)輕微移動(dòng)實(shí)現(xiàn)左(右)移一格,觸屏向左(右)長(zhǎng)移實(shí)現(xiàn)左(右)移到最左(右)端,觸屏向下輕微移動(dòng)加速下移一格,觸屏向下長(zhǎng)移加速下移至底端。如果可以移動(dòng),則修改參考點(diǎn)的位置,并在指定的游戲區(qū)域中重新填充自己,返回是否移動(dòng)成功的信息。方塊的旋轉(zhuǎn),我們不能只記錄提供的 8 中方塊形狀,而應(yīng)該把它們旋轉(zhuǎn)后產(chǎn)生的每種形狀都認(rèn)為是一種不同的方塊。這時(shí)候我們只處理一個(gè)方向的旋轉(zhuǎn),即順時(shí)針旋轉(zhuǎn)方式。然后在指定的區(qū)域中重新填充自己。(2)游戲區(qū)域類:可以用一個(gè)二維數(shù)組方便的實(shí)現(xiàn)。方塊落地:先執(zhí)行清行操作,獲得活動(dòng)方塊占用了哪些行的信息,然后逐行進(jìn)行掃描:對(duì)每一行,檢查其10列單
5、元格是否都已經(jīng)被填充,如果沒(méi)有,則繼續(xù)檢查下一行,如果是,則將該行以上的游戲區(qū)域整體下移一行,并在最上面一行填充一行空格。執(zhí)行完清行操作后,要產(chǎn)生下一個(gè)方塊,方塊類似于“開(kāi)始”命令中的步驟,此時(shí)要把活動(dòng)方塊指定為新產(chǎn)生的方塊,而且還有檢查新產(chǎn)生的方塊是否能成功填充,如果填充失敗,則游戲結(jié)束。第 - 2 - 頁(yè) 共 21 頁(yè)Android 有豐富的功能,因此很容易與桌面操作系統(tǒng)混淆。Android 是一個(gè)分層的環(huán)境,構(gòu)建在Linux 子系統(tǒng)包括:窗口,視圖。用于顯示一些常見(jiàn)組件(例如編輯框、列表和下拉列表)的小部件。Android 包括一個(gè)構(gòu)建在 WebKit 基礎(chǔ)上的可嵌入瀏覽器, iPhon
6、e 的 MobileSafari 瀏覽器同樣也是以 WebKit 為基礎(chǔ)。Android提供多種連接選項(xiàng),包括 WiFi、 和 應(yīng)用程序中一項(xiàng)流行的技術(shù)是鏈接到 Google 地圖,以便在應(yīng)用程序中顯示地址。Android 軟件棧還提供對(duì)基于位置的服務(wù)(例如 GPS)和加速計(jì)的支持,不過(guò)并不是所有的 Android 通過(guò)提供對(duì)2D 和 3D OpenGL Android平臺(tái)包括流行的開(kāi)源 SQLite 數(shù)據(jù)庫(kù),因此緩解了數(shù)據(jù)存儲(chǔ)的負(fù)擔(dān)。 運(yùn)行在 Linux 應(yīng)用程序是用Java VM 并非您想象中的 DalvikVirtual Android 應(yīng)用程序都在 Dalvik VM 的一個(gè)實(shí)例中運(yùn)行
7、,這個(gè)實(shí)例駐留在一個(gè)由 Linux 內(nèi)核管理的進(jìn)程中。(圖1)(4) 功能模塊設(shè)計(jì)說(shuō)明我主要負(fù)責(zé)游戲的形狀視圖以及各種方塊的形狀定義a.俄羅斯方塊中的“山”型:二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data02,data11data12data13從而得到如上圖形,并設(shè)置成綠色。其具體的實(shí)現(xiàn)代碼如下:二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data00,data01data02data33從而得到如上圖形,并設(shè)置成藍(lán)色。其具體的實(shí)現(xiàn)代碼如下 :二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data02,data11data12
8、data21從而得到如上圖形,并設(shè)置成粉紅色。二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data01,data11data12data22從而得到如上圖形,并設(shè)置成淺綠色。其具體的實(shí)現(xiàn)代碼如下 :二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data11,data12data22data32從而得到如上圖形,并設(shè)置成灰色。其具體的實(shí)現(xiàn)代碼如下 :true二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data11,data12data21data31從而得到如上圖形,并設(shè)置成紅色。其具體的實(shí)現(xiàn)代碼如下 :二維數(shù)組,通過(guò)設(shè)置里面的小正方形的
9、顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data01,data02data11data12從而得到如上圖形,并設(shè)置成黃色。其具體的實(shí)現(xiàn)代碼如下 :俄羅斯方塊中的“點(diǎn)”型二維數(shù)組,通過(guò)設(shè)置里面的小正方形的顏色來(lái)得到對(duì)應(yīng)的圖形,通過(guò)設(shè)置data02,從而得到如上圖形,并設(shè)置成灰色。true由于我主要負(fù)責(zé)游戲的形狀視圖,對(duì)界面設(shè)計(jì)和編程,在編程過(guò)程中,如何實(shí)現(xiàn)對(duì)界面的設(shè)計(jì),遇到了很多問(wèn)題,例如,怎么把屏幕分成20*10 的小方格,開(kāi)始嘗試了很多方法,最終通過(guò)設(shè)置若干條間隙來(lái)實(shí)現(xiàn)此布局,正如開(kāi)始時(shí)的界面:然后關(guān)于如何實(shí)現(xiàn) 8 種方塊的形狀也遇到了一些問(wèn)題,怎樣把 8 種形狀表示出來(lái),然后把小方塊定義出來(lái),并且附
10、上不同的顏色,這樣就能夠區(qū)分開(kāi)來(lái)了,而且這樣還能夠很容易的實(shí)現(xiàn)小方塊的變形以及下降,從而為后面的功能實(shí)現(xiàn)提供了可行的措施,下圖是其代碼的聲明:分別是排行榜,游戲操作,關(guān)于作者,以及退出。其界面如圖所示:班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)續(xù) 92*2預(yù)示框顯示即將出現(xiàn)的圖形;(2)按“|”鍵可以暫停游戲,按”GO”鍵開(kāi)始游戲;(3)點(diǎn)擊屏幕變換方塊角度,觸屏向左(右)輕微移動(dòng)實(shí)現(xiàn)左(右)移一格,觸屏向左(右)長(zhǎng)移實(shí)現(xiàn)左(右)移到最左(右)端,觸屏向下輕微移動(dòng)加速下移一格,觸屏向下長(zhǎng)移加速下移至底端;同時(shí)消除三行時(shí)得六分,同時(shí)消除四行時(shí)得十分。(5)游戲升級(jí):每得50分,游戲升一級(jí),
11、方塊下降速度增加。 a游戲操作b退出 c作者d IP號(hào)和日期將記錄進(jìn)排行榜第 - 11 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)import android.graphics.Color;/長(zhǎng)棒形狀的設(shè)置public class Bar extends ShapeAbstract private static final longserialVersionUID= -7974219679616324149L;/序列號(hào)的時(shí)候,被序列化的類要有一個(gè)唯一標(biāo)記。COLORdata = getEmptyShape();第 - 12 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程
12、 設(shè) 計(jì) 說(shuō) 明 書(shū)import android.graphics.Color;public class Hill extends ShapeAbstract serialVersionUID= 1005482779396338610L;唯一的COLORdata = getEmptyShape();data = getEmptyShape();第 - 13 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)data = getEmptyShape();package com.ding.shape;import android.graphics.Color;public clas
13、s Squareextends ShapeAbstract serialVersionUID= 3870772549631600871L;/唯一的COLOR=Color.YELLOW;設(shè)置顏色為黃色Rectangle data = getEmptyShape();data01.setSolid(true);data01.setColor(COLOR);data02.setSolid(true);data02.setColor(COLOR);data11.setSolid(true);data11.setColor(COLOR);data12.setSolid(true);data12.setC
14、olor(COLOR);m_shapes.add(data);第 - 14 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)ShapeView.javaprotected Rectangle m_data;m_rectW = w;第 - 15 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)public void setRectHeight(int h) m_rectH = h;setMeasuredDimension(totalW, totalH);/設(shè)置當(dāng)前view大小第 - 16 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)for
15、 (int i = 0; i m_data.length; i+) int right = left + w - m_gap;int bottom = top + h - m_gap;Rect tempR = new Rect(left, top, right, bottom);Paint p = new Paint();Paint p = new Paint();Rect r = new Rect(0, 0, h * m_data0.length -1, w * m_data.length - 1);protected void onMeasure(int widthMeasureSpec,
16、 int heightMeasureSpec)int width = h * m_data0.length;int height = w * m_data.length;setMeasuredDimension(width, height);第 - 17 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)int totalW = getWidth(); else super.onMeasure(widthMeasureSpec, heightMeasureSpec);for (int i = 0; i m_data.length; i+) rect.setColor(Shape
17、.DEFAULT_COLOR);第 - 18 - 頁(yè) 共21 頁(yè)班級(jí)學(xué)號(hào):姓名:日期:課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)1楊豐盛. Android應(yīng)用開(kāi)發(fā)揭秘M. 北京: 機(jī)械工業(yè)出版社, 2010.12劉新. Java開(kāi)發(fā)技術(shù)大全M. 北京: 清華大學(xué)出版社, 2009.23李華明. Android游戲編程之從零開(kāi)始M. 北京: 清華大學(xué)出版社, 2011.104吳亞峰, 蘇亞光. Android游戲開(kāi)發(fā)大全M. 北京: 人民郵電出版社, 2012.15王世江, 佘志龍, 陳昱勛, 鄭名杰. Google Android SDK開(kāi)發(fā)范例大全M.北京: 人民郵電出版社, 2011.116靳巖, 姚尚朗
18、. Android開(kāi)發(fā)入門和實(shí)踐M. 北京: 人民郵電出版社, 2009.77李剛. 瘋狂Android講義M. 北京: 電子工業(yè)出版社, 20098蓋索林. Google Android開(kāi)發(fā)入門指導(dǎo)M. 北京: 人民郵電出版社, 20079康德?tīng)? Android 移動(dòng)應(yīng)用開(kāi)發(fā)從入門到精通 M. 北京: 人民郵電出版社,2007為期三周的嵌入式軟件開(kāi)發(fā)課程設(shè)計(jì)終于結(jié)束了,通過(guò)這次課程設(shè)計(jì),使我熟悉了嵌入式軟件開(kāi)發(fā)的流程和eclipseJava的一特別是對(duì)一個(gè)安卓工程的結(jié)構(gòu)更加清楚,知道了每個(gè)文件夾里對(duì)應(yīng)著什么類型和功能的文件。這次課程設(shè)計(jì)是分小組進(jìn)行的,我主要是負(fù)責(zé)游戲的形狀視圖以及各種方塊的形狀定義,所以對(duì)頁(yè)面布局這一塊的內(nèi)容有了更深的理解,還是學(xué)到的很多的安卓知識(shí),尤其注意到了安卓和Java通過(guò)這次課程設(shè)計(jì),發(fā)現(xiàn)它們之間還是有很大的不同,通過(guò)上網(wǎng)查找資料,也學(xué)到了很多,遇到問(wèn)題,要善于利用互聯(lián)網(wǎng),當(dāng)今是網(wǎng)絡(luò)的時(shí)代,網(wǎng)上有海量的信息,我們?cè)趯W(xué)習(xí)中遇到困難要及時(shí)上網(wǎng)查閱資料,這樣我們才能學(xué)到更多的課本之外的知識(shí)。這次課程設(shè)計(jì)也讓我知道了,我們學(xué)習(xí)不
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025保險(xiǎn)公司合同管理規(guī)范
- 2025茶葉供需合同范文
- 2025屆北京市海淀區(qū)高三下學(xué)期期中練習(xí)歷史試題(含答案)
- 二零二五承租房租賃合同書(shū)范例
- 二零二五展位裝修合同
- 2025版關(guān)于個(gè)人房屋租賃合同范本標(biāo)準(zhǔn)版
- 2025年天津市房產(chǎn)購(gòu)買中介服務(wù)合同示范文本
- 2025建筑材料供應(yīng)企業(yè)管理人員勞動(dòng)合同(參考模板)
- 2025年辦公樓租賃合同樣式
- 2025年返銷貿(mào)易補(bǔ)償合同范本
- 2022全國(guó)高考真題化學(xué)匯編:專題 烴 鹵代烴
- GB/T 25742.4-2022機(jī)器狀態(tài)監(jiān)測(cè)與診斷數(shù)據(jù)處理、通信與表示第4部分:表示
- 特殊感染手術(shù)的配合與術(shù)后處理
- 蕭紅《呼蘭河傳》課件
- 腦血管病介入診療并發(fā)癥及其處理課件
- 機(jī)動(dòng)車駕駛?cè)丝荚噲?chǎng)地及其設(shè)施設(shè)置規(guī)范
- 大學(xué)生三生教育主題班會(huì)
- 2023年宜昌市中醫(yī)醫(yī)院醫(yī)護(hù)人員招聘筆試題庫(kù)及答案解析
- 內(nèi)部控制建設(shè)課件
- 水塘排水、清淤質(zhì)量檢驗(yàn)記錄表
- 上海龍之夢(mèng)麗晶大酒店客房預(yù)訂單
評(píng)論
0/150
提交評(píng)論