

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、班級學號:姓名:日期:淮 海 工 學 院 計算機工程學院課程設計報告姓 系 學 成績:成績簽名:2015年 1 月 日第 - 0 - 頁 共 21 頁班級學號:姓名:日期:課 程 設 計 說 明 書基于 Android 環境的俄羅斯方塊游戲設計 Pazhitnov)在 1984 年 6 月利用空暇時間編寫的游戲程序,故此得名。俄羅斯方塊的基本規則是移動、旋轉和擺放游戲隨機產生的各種方塊,使之排列成完整的一行或多行并作為游戲本身很有魅力,但是要熟練掌握其中的操作和擺放技巧,難度卻不低。此軟件給用戶提供了一個展現自己高超技藝的場所,在這里,它不僅放松自己,還能感受到游戲中的樂趣。游戲區域會從頂部不
2、斷落下 8 種下墜物的一種,游戲區域右上角有一個區域可以顯下墜物在游戲區域以“擺積木”的形式出現。下墜物在一行或多行堆滿后就可以自動消除,消行后會得到相應的分數,如果當前下墜物堆積至窗口頂端,則游戲結束。嵌入式系統的教學可以分為課堂理論教學、實驗教學和課程設計三個層面。這三個層面的目標有所不同。理論學習的主要目標是掌握嵌入式系統的一般原理,例如實時調度策略、自動控制算法等;實驗教學的主要目的是掌握嵌入式系統的主要開發流程和基本方法,例如開發工具鏈的使用、小型應用開發等;課程設計的主要目的是通過實際的嵌入式應用系統開發實例掌握嵌入式系統設計和開發的技能和專門知識,積累實踐和工程經驗。第 - 1
3、- 頁 共 21 頁班級學號:姓名:日期:課 程 設 計 說 明 書開發一個簡單的俄羅斯方塊游戲,并達到以下要求:1、開始游戲隨機產生方塊并自動下落。右上角 2*2 預示框顯示即將出現的圖形;2、按“|”鍵可以暫停游戲,按”GO”鍵開始游戲;3、點擊屏幕變換方塊角度,觸屏向左(右)實現左(右)移,向下點擊加速下移;4、系統能夠正確判斷是否滿行,并對已滿的行實現消行并加分。(1)方塊類:每個方塊都有自己的ID、形狀、顏色。每個方塊都限定在4*4 的矩形區域內變幻形狀。以此矩形區域的左上方端點為坐標移動。在方塊類中定 ID 時只需要提供其 ID 即可。移動:在指定的游戲區域中移動,包括向左、右、下
4、移動。以一個單元為單位。觸屏向左(右)輕微移動實現左(右)移一格,觸屏向左(右)長移實現左(右)移到最左(右)端,觸屏向下輕微移動加速下移一格,觸屏向下長移加速下移至底端。如果可以移動,則修改參考點的位置,并在指定的游戲區域中重新填充自己,返回是否移動成功的信息。方塊的旋轉,我們不能只記錄提供的 8 中方塊形狀,而應該把它們旋轉后產生的每種形狀都認為是一種不同的方塊。這時候我們只處理一個方向的旋轉,即順時針旋轉方式。然后在指定的區域中重新填充自己。(2)游戲區域類:可以用一個二維數組方便的實現。方塊落地:先執行清行操作,獲得活動方塊占用了哪些行的信息,然后逐行進行掃描:對每一行,檢查其10列單
5、元格是否都已經被填充,如果沒有,則繼續檢查下一行,如果是,則將該行以上的游戲區域整體下移一行,并在最上面一行填充一行空格。執行完清行操作后,要產生下一個方塊,方塊類似于“開始”命令中的步驟,此時要把活動方塊指定為新產生的方塊,而且還有檢查新產生的方塊是否能成功填充,如果填充失敗,則游戲結束。第 - 2 - 頁 共 21 頁Android 有豐富的功能,因此很容易與桌面操作系統混淆。Android 是一個分層的環境,構建在Linux 子系統包括:窗口,視圖。用于顯示一些常見組件(例如編輯框、列表和下拉列表)的小部件。Android 包括一個構建在 WebKit 基礎上的可嵌入瀏覽器, iPhon
6、e 的 MobileSafari 瀏覽器同樣也是以 WebKit 為基礎。Android提供多種連接選項,包括 WiFi、 和 應用程序中一項流行的技術是鏈接到 Google 地圖,以便在應用程序中顯示地址。Android 軟件棧還提供對基于位置的服務(例如 GPS)和加速計的支持,不過并不是所有的 Android 通過提供對2D 和 3D OpenGL Android平臺包括流行的開源 SQLite 數據庫,因此緩解了數據存儲的負擔。 運行在 Linux 應用程序是用Java VM 并非您想象中的 DalvikVirtual Android 應用程序都在 Dalvik VM 的一個實例中運行
7、,這個實例駐留在一個由 Linux 內核管理的進程中。(圖1)(4) 功能模塊設計說明我主要負責游戲的形狀視圖以及各種方塊的形狀定義a.俄羅斯方塊中的“山”型:二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data02,data11data12data13從而得到如上圖形,并設置成綠色。其具體的實現代碼如下:二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data00,data01data02data33從而得到如上圖形,并設置成藍色。其具體的實現代碼如下 :二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data02,data11data12
8、data21從而得到如上圖形,并設置成粉紅色。二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data01,data11data12data22從而得到如上圖形,并設置成淺綠色。其具體的實現代碼如下 :二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data11,data12data22data32從而得到如上圖形,并設置成灰色。其具體的實現代碼如下 :true二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data11,data12data21data31從而得到如上圖形,并設置成紅色。其具體的實現代碼如下 :二維數組,通過設置里面的小正方形的
9、顏色來得到對應的圖形,通過設置data01,data02data11data12從而得到如上圖形,并設置成黃色。其具體的實現代碼如下 :俄羅斯方塊中的“點”型二維數組,通過設置里面的小正方形的顏色來得到對應的圖形,通過設置data02,從而得到如上圖形,并設置成灰色。true由于我主要負責游戲的形狀視圖,對界面設計和編程,在編程過程中,如何實現對界面的設計,遇到了很多問題,例如,怎么把屏幕分成20*10 的小方格,開始嘗試了很多方法,最終通過設置若干條間隙來實現此布局,正如開始時的界面:然后關于如何實現 8 種方塊的形狀也遇到了一些問題,怎樣把 8 種形狀表示出來,然后把小方塊定義出來,并且附
10、上不同的顏色,這樣就能夠區分開來了,而且這樣還能夠很容易的實現小方塊的變形以及下降,從而為后面的功能實現提供了可行的措施,下圖是其代碼的聲明:分別是排行榜,游戲操作,關于作者,以及退出。其界面如圖所示:班級學號:姓名:日期:課 程 設 計 說 明 書續 92*2預示框顯示即將出現的圖形;(2)按“|”鍵可以暫停游戲,按”GO”鍵開始游戲;(3)點擊屏幕變換方塊角度,觸屏向左(右)輕微移動實現左(右)移一格,觸屏向左(右)長移實現左(右)移到最左(右)端,觸屏向下輕微移動加速下移一格,觸屏向下長移加速下移至底端;同時消除三行時得六分,同時消除四行時得十分。(5)游戲升級:每得50分,游戲升一級,
11、方塊下降速度增加。 a游戲操作b退出 c作者d IP號和日期將記錄進排行榜第 - 11 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書import android.graphics.Color;/長棒形狀的設置public class Bar extends ShapeAbstract private static final longserialVersionUID= -7974219679616324149L;/序列號的時候,被序列化的類要有一個唯一標記。COLORdata = getEmptyShape();第 - 12 - 頁 共21 頁班級學號:姓名:日期:課 程
12、 設 計 說 明 書import android.graphics.Color;public class Hill extends ShapeAbstract serialVersionUID= 1005482779396338610L;唯一的COLORdata = getEmptyShape();data = getEmptyShape();第 - 13 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書data = getEmptyShape();package com.ding.shape;import android.graphics.Color;public clas
13、s Squareextends ShapeAbstract serialVersionUID= 3870772549631600871L;/唯一的COLOR=Color.YELLOW;設置顏色為黃色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 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書ShapeView.javaprotected Rectangle m_data;m_rectW = w;第 - 15 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書public void setRectHeight(int h) m_rectH = h;setMeasuredDimension(totalW, totalH);/設置當前view大小第 - 16 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書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 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書int totalW = getWidth(); else super.onMeasure(widthMeasureSpec, heightMeasureSpec);for (int i = 0; i m_data.length; i+) rect.setColor(Shape
17、.DEFAULT_COLOR);第 - 18 - 頁 共21 頁班級學號:姓名:日期:課 程 設 計 說 明 書1楊豐盛. Android應用開發揭秘M. 北京: 機械工業出版社, 2010.12劉新. Java開發技術大全M. 北京: 清華大學出版社, 2009.23李華明. Android游戲編程之從零開始M. 北京: 清華大學出版社, 2011.104吳亞峰, 蘇亞光. Android游戲開發大全M. 北京: 人民郵電出版社, 2012.15王世江, 佘志龍, 陳昱勛, 鄭名杰. Google Android SDK開發范例大全M.北京: 人民郵電出版社, 2011.116靳巖, 姚尚朗
18、. Android開發入門和實踐M. 北京: 人民郵電出版社, 2009.77李剛. 瘋狂Android講義M. 北京: 電子工業出版社, 20098蓋索林. Google Android開發入門指導M. 北京: 人民郵電出版社, 20079康德爾. Android 移動應用開發從入門到精通 M. 北京: 人民郵電出版社,2007為期三周的嵌入式軟件開發課程設計終于結束了,通過這次課程設計,使我熟悉了嵌入式軟件開發的流程和eclipseJava的一特別是對一個安卓工程的結構更加清楚,知道了每個文件夾里對應著什么類型和功能的文件。這次課程設計是分小組進行的,我主要是負責游戲的形狀視圖以及各種方塊的形狀定義,所以對頁面布局這一塊的內容有了更深的理解,還是學到的很多的安卓知識,尤其注意到了安卓和Java通過這次課程設計,發現它們之間還是有很大的不同,通過上網查找資料,也學到了很多,遇到問題,要善于利用互聯網,當今是網絡的時代,網上有海量的信息,我們在學習中遇到困難要及時上網查閱資料,這樣我們才能學到更多的課本之外的知識。這次課程設計也讓我知道了,我們學習不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省撫順市撫順縣2025屆五下數學期末經典試題含答案
- 太原師范學院《中醫傳染病學》2023-2024學年第一學期期末試卷
- 江西省南昌二中2025屆高三數學試題質量檢測試題(一)數學試題試卷含解析
- 四川省涼山彝族自治州甘洛縣2025年三年級數學第二學期期末質量跟蹤監視模擬試題含解析
- 寧夏醫科大學《職業生涯開發》2023-2024學年第二學期期末試卷
- 注冊營養師勞動合同樣本
- 汕頭職業技術學院《模擬口譯訓練A》2023-2024學年第二學期期末試卷
- 江西農業大學南昌商學院《數字繪畫創作》2023-2024學年第二學期期末試卷
- 信陽航空職業學院《短視頻策劃與運營》2023-2024學年第一學期期末試卷
- 浙江科技學院《視頻特效設計》2023-2024學年第二學期期末試卷
- 《多導睡眠監測》課件
- 抖音直播培訓基地宣傳
- 品管圈PDCA改善案例-呼吸科提高住院患者痰標本送檢合格率
- 《高壓氧治療腦梗塞》課件
- 人工智能導論知到智慧樹章節測試課后答案2024年秋天津大學
- 人教版(新教材)高中物理選擇性必修2教學設計4:2 2 法拉第電磁感應定律教案
- 十八項醫療核心制度考試題與答案
- 《可復制的領導力》讀書分享
- 黃連素的合成方法研究
- 2023年全國高中數學聯賽北京賽區預賽試題
- 金融違反案例
評論
0/150
提交評論