版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> Android課程設計</p><p> 專 業(yè) 計算機科學與技術 </p><p> 姓 名 </p><p> 學 號 </p><p> 指導老師 <
2、;/p><p><b> 目錄</b></p><p><b> 第一章 緒論3</b></p><p><b> 1.1開發(fā)背景3</b></p><p> 1.1.1安卓系統(tǒng)簡介3</p><p> 1.1.2游戲簡介3</p&
3、gt;<p> 1.2開發(fā)目的及意義4</p><p> 1.3開發(fā)環(huán)境及工具4</p><p> 第二章需求分析5</p><p> 2.1游戲界面分析5</p><p> 2.2游戲角色分析5</p><p> 2.3游戲控制分析5</p><p>
4、 2.4 可行性分析6</p><p> 第三章總體設計7</p><p> 3.1系統(tǒng)功能模塊層次圖7</p><p><b> 3.2運行機制8</b></p><p> 3.3貪吃蛇功能流程圖10</p><p> 第四章 詳細設計與實現(xiàn)12</p>
5、<p> 4.1 TiltView類12</p><p> 4.2 SnakeView類14</p><p> 4.3 界面設計16</p><p><b> 第五章 測試20</b></p><p> 5.1游戲功能測試20</p><p> 5.2游戲控制
6、測試20</p><p> 5.3游戲界面測試20</p><p> 5.4測試結(jié)果20</p><p><b> 第六章結(jié)論 1</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1開發(fā)背景</b>
7、;</p><p> 1.1.1安卓系統(tǒng)簡介</p><p> 安卓系統(tǒng)作為新興的手機操作系統(tǒng),在問世不久,變風靡全球,占領手機操作系統(tǒng)里很大的市場份額,與蘋果,諾基亞三分天下,Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機操作系統(tǒng)。 早期由原名為"Android"的公司開發(fā),谷歌在2005年收購"A
8、ndroid.Inc"后,繼續(xù)對Android系統(tǒng)開發(fā)運營,它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應用軟件則由各公司自行開發(fā),部分程序以Java編寫。</p><p><b> 1.1.2游戲簡介</b></p><p> 1976年,Gremlin平臺推出了一款經(jīng)典
9、街機游戲Blockade。游戲中,兩名玩家分別控制一個角色在屏幕上移動,所經(jīng)之處砌起圍欄。角色只能向左、右方向90度轉(zhuǎn)彎,游戲目標保證讓對方先撞上屏幕或圍欄?!÷犉饋碛悬c復雜?其實就是下面這個樣子: 基本上就是兩條每走一步都會長大的貪吃蛇比誰后完蛋,玩家要做的就是避免撞上障礙物和越來越長的身體。更多照片、視頻可以看 Games DBase 的介紹?!? Blockade 很受歡迎,類似的游戲先后出現(xiàn)在 Atari 260
10、0、TRS-80、蘋果 2 等早期游戲機、計算機上。但真正讓這種游戲形式紅遍全球的還是21年后隨諾基亞手機走向世界的貪吃蛇游戲——Snake。</p><p> 貪吃蛇游戲是一款老牌的手機游戲,同時也是一款比較需要耐心地游戲。貪吃蛇游戲就是一條小蛇,不停地在屏幕上游走,吃各個方向出現(xiàn)的食物,越吃越長。只要蛇頭碰到屏幕四周,或者碰到自己的身子,小蛇就立即斃命。玩“貪吃蛇游戲”,難度最大的不是蛇長得很長的時候,而是
11、開始的時候。那時蛇身很短,看上去難度不大,卻最容易死掉,因為把玩一條小蛇讓人容易走神,失去耐心。</p><p> 1.2開發(fā)目的及意義</p><p> 通過本次課程設計,了解android軟件的開發(fā)過程,熟悉并掌握JAVA語言,HTML. 程序關鍵在于表示蛇的圖形及蛇的移動。用一個小矩形快表示蛇的一節(jié)身體,身體每長一節(jié),增加一個矩形塊,蛇頭用倆節(jié)表示。移動時必須從蛇頭開始,所以蛇不
12、能向相反的方向移動,如果不按任意鍵,蛇自行在當前方向上前移,但按下有效方向鍵后,蛇頭朝著該方向移動,一步移動一節(jié)身體,所以按下有效方向鍵后,先確定蛇頭的位置,而后蛇的身體隨蛇頭移動,圖形的實現(xiàn)是從蛇頭新位置開始畫出蛇,這時,由于未清屏的原因,原來的蛇的位置和新蛇的位置差一個單位,所以看起來蛇多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)與消失也是畫矩形塊和覆蓋矩形塊。為了便于理解,定義兩個結(jié)構(gòu)體:食物與蛇 目的 本程序?qū)崿F(xiàn)主要技
13、巧在于java語言的應用。目的在于提高編程的水平。</p><p> 1.3開發(fā)環(huán)境及工具</p><p> 采用eclipse開發(fā)工具,在windowsxp下進行,基于安卓2.2操作系統(tǒng)。</p><p><b> 環(huán)境搭建:</b></p><p><b> 1. JDK安裝</b>&
14、lt;/p><p> 2. Eclipse安裝</p><p> 3. Android SDK安裝</p><p> 4. ADT安裝創(chuàng)建AVD</p><p><b> 需求分析</b></p><p><b> 2.1游戲界面分析</b></p>
15、<p> 首先應解決操作界面的問題,操作界面應該人性化設計,提示玩家當前游戲狀態(tài),何時開始,按什么按鍵開始游戲,開始游戲之后,在游戲界面中,以坐標的形式對整體界面進行劃分,將界面劃分為許多個小方格,還應設計蛇的樣式,蘋果的樣式和墻的樣式,在蛇吃到蘋果后的樣式,還有游戲結(jié)束或暫停時,界面的顯示,游戲結(jié)束后,要顯示所得的分數(shù)。</p><p><b> 2.2游戲角色分析</b>
16、</p><p> 設置游戲貪吃蛇初始時由固定個小矩形塊組成,并且,游戲中,要隨機出現(xiàn)由單個矩形塊構(gòu)成的蘋果,并且在設置蘋果的時候,還要設置,不能使將要出現(xiàn)的蘋果出現(xiàn)在蛇的身體之下,在蛇吃到蘋果的時候,要將蛇的身體加長,隨著游戲的進行,蛇移動的速度也要加快。此外,要判定游戲成功與失敗的條件,當蛇的頭和尾相撞或者蛇的頭部撞到了墻上,則游戲失敗,此時游戲結(jié)束,界面顯示所得分數(shù),當累積分數(shù)達到一定標準則游戲成功。另外
17、蛇的移動原理,由外部按鍵設置監(jiān)聽控制蛇頭的移動方向,在方向的指引下進行移動,蛇及蘋果的位置都是由坐標數(shù)組確定的,蘋果的位置也是隨機產(chǎn)生的蛇的移動原理是后一矩形塊覆蓋前一個矩形塊。當一個蘋果被吃掉的時候,要自動生成并顯示下一個蘋果的位置。這些都是在設計過程中需要實現(xiàn)的。</p><p><b> 2.3游戲控制分析</b></p><p> 游戲中需要通過按鍵對蛇的
18、移動方位進行控制,共需要設置四個方位,分別是“東”“西”“南”“北”,在按鍵上用“上”“下”“左”“右”,按鍵與執(zhí)行部分便涉及到監(jiān)聽,通過監(jiān)聽指示蛇的運動,此外,要設置蛇移動是的默認方向為“上”</p><p> 游戲開始時也是由“上”鍵啟動,暫停后根據(jù)玩家的操作自動控制蛇的移動方向,設計過程中還應注意,蛇的移動只能是90度偏轉(zhuǎn),不能進行180度偏轉(zhuǎn)。此外還要設置游戲的四種狀態(tài),準備,運行,暫停,結(jié)束,蛇體變長
19、的時候要用累加器進行加分。游戲暫停時,要對當前游戲的參數(shù)和狀態(tài)進行保存。</p><p> 2.4 可行性分析 貪吃蛇游戲是一種簡單的大眾的游戲,自從計算機實現(xiàn)以來,深受廣大電腦玩家的喜愛,做一個簡單的貪吃蛇小游戲?! ?貪吃蛇的核心算法時如何實現(xiàn)移動和吃掉食物,沒有碰到食物的時候,把當前運動方向上的下個節(jié)點入隊,并以蛇節(jié)點的顏色繪制這個節(jié)點,然后把頭指針所指的節(jié)點出隊,并以游戲框架內(nèi)部背景色重繪出隊的
20、節(jié)點,這樣就可以達到移動的效果。而在吃到食物的時候,則只需把食物入隊即可。實現(xiàn)貪吃蛇的基本的蛇身移動、吃到食物身體增長、和碰到墻壁或自身死亡,能夠暫停和開始。 本次設計我將主要運用java語言來完成。Java語言是一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο缶幊陶Z言,用Java寫的應用程序不用修改就可在不同的軟硬件平臺上運行。 由于Java主要用于網(wǎng)絡應用程序開發(fā),因此對安全性有較高的要求。如果沒有安全保證,用戶從網(wǎng)絡下載程序執(zhí)
21、行就非常危險。Java通過自己的安全機制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。</p><p><b> 總體設計</b></p><p> 3.1系統(tǒng)功能模塊層次圖</p><p> 工程中包括4個Activity,分別為Snake(主界面)、Game(游戲界面)、Help(游戲說明界面)、AuthorView(作者信息界
22、面),通過不同Activity之間的轉(zhuǎn)換實現(xiàn)不同界面之間的切換。Snake(Activity)繼承了SnakeView類,SnakeView類繼承了TileView類。TileView類繼承了View其實 Snake的工程蠻簡單的,源文件就三個: Snake.java SnakeView.java TileView.java。 Snake類是這個游戲的入口點, TitleView類進行游戲的繪畫, SnakeView類則是對游戲控制操作
23、的處理。 Coordinate, RefreshHandler是 2個輔助類,也是 SnakeView類中的內(nèi)部類。其中, Coordinate是一個點的坐標( x, y), RefreshHandler將 RefreshHandler對象綁定某個線程并給它發(fā)送消息。如下圖:</p><p><b> 類圖</b></p><p><b> 3.2運行機
24、制</b></p><p> 任何游戲都需要有個引擎來推動游戲的運行,最簡化的游戲引擎就是:在一個線程中 While循環(huán),檢測用戶操作,對用戶的操作作出反應,更新游戲的界面,直到用戶退出游戲。在 Snake這個游戲中,輔助類 RefreshHandler繼承自 Handler,用來把 RefreshHandler與當前線程進行綁定,從而可以直接給線程發(fā)送消息并處理消息。注意一點: Handle對
25、消息的處理都是異步。 RefreshHandler在 Handler的基礎上增加 sleep()接口,用來每隔一個時間段后給當前線程發(fā)送一個消息。 handleMessage()方法在接受消息后,根據(jù)當前的游戲狀態(tài)重繪界面,運行機制如下: 活動圖運行機制這比較類似定時器的概念,在特定的時刻發(fā)送消息,根據(jù)消息處理相應的事件。 update()與 sleep()間接的相互調(diào)用就構(gòu)成了一
26、個循環(huán)。這里要注意: mRedrawHandle綁定的是 Avtivity所在的線程,也就是程序的主線程;另外由于 sleep()是個異步函數(shù),所以 update()與 sleep()之間</p><p> 3.3貪吃蛇功能流程圖</p><p> 第四章 詳細設計與實現(xiàn)</p><p> 4.1 TiltView類</p><p>
27、; TiltView的基類是View,包含了貪吃蛇游戲畫面的各個設定參數(shù),主要負責繪制游戲畫面。TileView類定義如下:</p><p> public class TileView extends View {</p><p> private static final String tag = "yao";</p><p> pr
28、otected static int mTileSize = 20;//方格的邊長</p><p> protected static int mXTileCount;//X軸上方格的個數(shù)</p><p> protected static into mYTileCount;//Y軸上方格的個數(shù)</p><p> private static int mXOf
29、fset;//繪圖時X軸上的起始坐標</p><p> private static int mYOffset;//繪圖時Y軸上的起始坐標</p><p> private Bitmap[] mTileArray;//位圖數(shù)組</p><p> private int[][] mTileGrid;//映射整個游戲畫面的數(shù)組</p><p&g
30、t; private final Paint mPaint = new Paint();//畫筆</p><p> public TileView(Context context, AttributeSet attrs) {</p><p> super(context, attrs);</p><p> Log.i(tag, "TileView
31、Constructor");</p><p> Log.i(tag, "mTileSize=" + mTileSize);</p><p><b> }</b></p><p> //重置位圖數(shù)組的長度</p><p> public void resetTiles(int tile
32、count) {</p><p> mTileArray = new Bitmap[tilecount];</p><p><b> }</b></p><p><b> @Override</b></p><p> //適應各種分辨率的屏幕,當改變屏幕大小尺寸時,同時修改tile的相關計數(shù)
33、指標</p><p> protected void onSizeChanged(int w, int h, int oldw, int oldh) {</p><p> Log.i(tag, "onSizeChanged," + "w=" + w + " h=" + h + " oldw=" + oldw
34、 + " oldh=" + oldh);</p><p> mXTileCount = (int) Math.floor(w / mTileSize);</p><p> mYTileCount = (int) Math.floor(h / mTileSize);</p><p> Log.i(tag, "mXTileCount=
35、" + mXTileCount);</p><p> Log.i(tag, "mYTileCount=" + mYTileCount);</p><p> mXOffset = ((w - (mTileSize * mXTileCount)) / 2);</p><p> mYOffset = ((h - (mTileSize *
36、 mYTileCount)) / 2);</p><p> Log.i(tag, "mXOffset=" + mXOffset);</p><p> Log.i(tag, "mYOffset=" + mYOffset);</p><p> mTileGrid = new int[mXTileCount][mYTileCo
37、unt];</p><p> clearTiles();</p><p><b> }</b></p><p> //這里做了一個 Drawable 到 bitmap 的轉(zhuǎn)換</p><p> public void loadTile(int key, Drawable tile) {</p>&l
38、t;p> Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);</p><p> Canvas canvas = new Canvas(bitmap);</p><p> tile.setBounds(0, 0, mTileSize, mTileSize);<
39、/p><p> tile.draw(canvas);</p><p> mTileArray[key] = bitmap;</p><p><b> }</b></p><p><b> //清空圖形顯示</b></p><p> public void clearTi
40、les() {</p><p> Log.i(tag, "TileView.clearTiles");</p><p> for (int x = 0; x < mXTileCount; x++) {</p><p> for (int y = 0; y < mYTileCount; y++) {</p><
41、p> setTile(0, x, y);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //在相應的坐標位置繪制相應的磚塊</p><p> publ
42、ic void setTile(int tileindex, int x, int y) {</p><p> mTileGrid[x][y] = tileindex;</p><p><b> }</b></p><p><b> // onDraw</b></p><p><b>
43、; @Override</b></p><p> //將直接操作的畫布繪制到手機界面上</p><p> public void onDraw(Canvas canvas) {</p><p> Log.i(tag, "onDraw");</p><p> super.onDraw(canvas);&
44、lt;/p><p> Bitmap bmp;</p><p> float left;</p><p> float top;</p><p> for (int x = 0; x < mXTileCount; x++) {</p><p> for (int y = 0; y < mYTileCou
45、nt; y++) {</p><p> if (mTileGrid[x][y] > 0) {</p><p> bmp = mTileArray[mTileGrid[x][y]];</p><p> left = x * mTileSize + mXOffset;</p><p> top = y * mTileSize + m
46、YOffset;</p><p> canvas.drawBitmap(bmp, left, top, mPaint);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p&
47、gt;<b> }</b></p><p><b> }</b></p><p> 4.2 SnakeView類</p><p> SnakeView類定義了游戲運行時的畫面改變及蛇體和果子的更新方法。</p><p> 首先用Handler機制實現(xiàn)定時刷新,代碼如下:</p>
48、;<p> class RefreshHandler extends Handler {</p><p><b> //獲取消息并處理</b></p><p><b> @Override</b></p><p> public void handleMessage(Message msg) {<
49、;/p><p> SnakeView.this.update();</p><p> SnakeView.this.invalidate();//刷新view為基類的界面</p><p> Log.i(tag, "handleMessage|Thread Name="+Thread.currentThread().getName());<
50、/p><p><b> }</b></p><p> //定時發(fā)送消息給UI線程,以此達到更新效果</p><p> public void sleep(long delayMillis) {</p><p> this.removeMessages(0); //清空消息隊列,Handler進入對新消息的等待 &
51、lt;/p><p> Log.i(tag, "sleep|Thread Name="+Thread.currentThread().getName());</p><p> //定時發(fā)送新消息,激活handler </p><p> sendMessageDelayed(obtainMessage(0), delayMillis);<
52、/p><p><b> }</b></p><p><b> };</b></p><p> 定義SnakeView()函數(shù)初始化游戲,代碼如下:</p><p> public SnakeView(Context context, AttributeSet attrs) {</p>
53、<p> super(context, attrs);</p><p> Log.i(tag, "SnakeView Constructor");</p><p> initSnakeView();//構(gòu)造函數(shù)中,初始化游戲</p><p><b> }</b></p><p>
54、 定義initSnakeView()初始化SnakeView類,代碼如下:</p><p> private void initSnakeView() {</p><p> Log.e(tag, "initSnakeView");</p><p> //設置焦點,由于存在 文字界面 和 游戲界面的跳轉(zhuǎn)。這個focus是不可或缺的。<
55、/p><p> setFocusable(true);</p><p> //取得資源中的圖片,加載到 磚塊字典 中。 </p><p> Resources r = this.getContext().getResources();</p><p> resetTiles(4);</p><p> loadTi
56、le(RED_STAR, r.getDrawable(R.drawable.redstar));</p><p> loadTile(YELLOW_STAR, r.getDrawable(R.drawable.yellowstar));</p><p> loadTile(GREEN_STAR, r.getDrawable(R.drawable.greenstar));</p&g
57、t;<p><b> }</b></p><p> 此外還定義了updateWalls()、updateApples()、updateSnake()繪制墻、果子、蛇,以及更新畫面函數(shù)、保存位置坐標函數(shù)等,具體代碼請詳見目錄。</p><p><b> 4.3界面設計</b></p><p> 界面設計
58、包括游戲主界面(Snake)、游戲說明界面、游戲界面的設計。界面的設計采用的是xml文檔形式,在xml文檔中規(guī)劃好界面布局布局后,分別在java文件中聲明。</p><p> 主界面設計:主界面包括一個 TextView及布局設定,其main.xml文檔如下</p><p> <?xml version="1.0" encoding="utf-8&q
59、uot;?></p><p> <!-- Copyright (C) 2007 The Android Open Source Project</p><p> Licensed under the Apache License, Version 2.0 (the "License");</p><p> you may not
60、 use this file except in compliance with the License.</p><p> You may obtain a copy of the License at</p><p> http://www.apache.org/licenses/LICENSE-2.0</p><p> Unless required b
61、y applicable law or agreed to in writing, software</p><p> distributed under the License is distributed on an "AS IS" BASIS,</p><p> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, eit
62、her express or implied.</p><p> See the License for the specific language governing permissions and</p><p> limitations under the License.</p><p><b> --></b></p
63、><p> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"</p><p> android:layout_width="match_parent"</p><p> android:layout_height="
64、match_parent"></p><p> <com.example.android.snake.SnakeView</p><p> android:id="@+id/snake"</p><p> android:layout_width="match_parent"</p>
65、<p> android:layout_height="match_parent"</p><p> tileSize="24"</p><p><b> /></b></p><p> <RelativeLayout</p><p> androi
66、d:layout_width="match_parent"</p><p> android:layout_height="match_parent" ></p><p><b> <TextView</b></p><p> android:id="@+id/text&quo
67、t;</p><p> android:text="@string/snake_layout_text_text"</p><p> android:visibility="visible"</p><p> android:layout_width="wrap_content"</p>
68、<p> android:layout_height="wrap_content"</p><p> android:layout_centerInParent="true"</p><p> android:gravity="center_horizontal"</p><p> an
69、droid:textColor="#ff8888ff"</p><p> android:textSize="24sp"/></p><p> </RelativeLayout></p><p> </FrameLayout></p><p> 至此,全部界面設計完
70、成,但還有最重要的一步,就是將所有的Activity注冊到AndroidManifest.xml中。AndroidManifest.xml文檔如下:</p><p> <?xml version="1.0" encoding="utf-8"?></p><p> <!-- Copyright (C) 2007 The Andro
71、id Open Source Project</p><p> Licensed under the Apache License, Version 2.0 (the "License");</p><p> you may not use this file except in compliance with the License.</p><
72、;p> You may obtain a copy of the License at</p><p> http://www.apache.org/licenses/LICENSE-2.0</p><p> Unless required by applicable law or agreed to in writing, software</p><p&
73、gt; distributed under the License is distributed on an "AS IS" BASIS,</p><p> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</p><p> See the License for th
74、e specific language governing permissions and</p><p> limitations under the License.</p><p><b> --></b></p><p> <!-- Declare the contents of this Android applic
75、ation. The namespace</p><p> attribute brings in the Android platform namespace, and the package</p><p> supplies a unique name for the application. When writing your</p><p> o
76、wn application, the package name must be changed from "com.example.*"</p><p> to come from a domain that you own or have control over. --></p><p> <manifest xmlns:android="
77、;http://schemas.android.com/apk/res/android"</p><p> package="com.example.android.snake"></p><p> <application android:label="Snake on a Phone"></p>&l
78、t;p> <activity android:name="Snake"</p><p> android:theme="@android:style/Theme.NoTitleBar"</p><p> android:screenOrientation="portrait"</p><p&g
79、t; android:configChanges="keyboardHidden|orientation"></p><p> <intent-filter></p><p> <action android:name="android.intent.action.MAIN" /></p><p
80、> <category android:name="android.intent.category.LAUNCHER" /></p><p> </intent-filter></p><p> </activity></p><p> </application></p>
81、<p> </manifest></p><p><b> 4.4項目演示</b></p><p><b> 游戲前畫面</b></p><p><b> 游戲中界面</b></p><p><b> 游戲結(jié)束時畫面</b&g
82、t;</p><p><b> 第五章 測試</b></p><p><b> 5.1游戲功能測試</b></p><p> 經(jīng)過在模擬器上的測試,本軟件能書案例實現(xiàn)其功能,達到了小蛇在屏幕上的移動,小蛇吃蘋果,蘋果隨機出現(xiàn)的功能,當小蛇頭尾相撞或與墻相撞時,游戲結(jié)束.這些均在測試中得到驗證。</p>
83、<p><b> 5.2游戲控制測試</b></p><p> 在測試過程中,也著重對游戲的控制功能進行了測試,游戲是通過方向鍵的控制來實現(xiàn)的,在游戲剛開始的階段,上下左右四個方位的控制都很成功,但隨著蛇移動的速度越來越快,按鍵的控制反應會出現(xiàn)滯后,通過分析,可能是由于蛇的運動速度超過了鍵盤的反應速度造成的,與軟件無關,所以得出結(jié)論,游戲的控制設計也是成功的。</p>
84、;<p><b> 5.3游戲界面測試</b></p><p> 游戲運行之后,就是在畫面中出現(xiàn)蛇和兩個蘋果的初始位置,并且是靜止的,并且在畫面上還會出現(xiàn)操作提示“按上鍵開始游戲”,游戲運行過程中,除了蛇的運動之外,界面大題沒有變化,分別由綠色矩形塊的圍墻,黃色矩形塊的蘋果和紅色矩形塊的蛇身(蛇頭為黃色)組成。游戲結(jié)束后,界面處于暫停狀態(tài),提示游戲結(jié)束并顯示分數(shù)。</
85、p><p><b> 5.4測試結(jié)果</b></p><p> 通過對游戲軟件的功能測試,控制測試和界面測試。詳細說是對游戲的開始新游戲、 退出、 查看最高成績、 計時、 統(tǒng)計分數(shù)等功能進行測試, 并測試程序的鼠標點擊事件、菜單的響應及按鍵響應等事件,結(jié)論是該游戲軟件能正確實現(xiàn)功能要求。要求輸出的效果與預期的輸出效果完全 一致。</p><p>
86、;<b> 結(jié)論</b></p><p> 回顧這個設計過程,我學到了許多書本上沒有學到的知識。通過這次自己制作的軟件,豐富了自己的實踐技能,擴展了本專業(yè)的知識面,使我受益非淺,同時 也體驗到了搞軟件開發(fā)的困難度。 在這次設計的同時,我又從中學到了許多東西。 但由于我對這樣的軟件開發(fā)還只是一個開始,了解的不多,這其中或許還有很多 的不足,有些模塊做得不是很好,界面的設計及整體的布局還比較
87、簡單,沒有突 出特色出來,這也可能是我這個系統(tǒng)的不足之處,在這里也懇請老師能夠?qū)?我的作品指明不足并加以改正。 </p><p> 我所做的設計功能并不算強大,但是這些結(jié)合了本學期所學習的內(nèi)容,主要是界面的設計,并改寫了兩個類。通過自己寫代碼,我更進一步清楚了android工程的框架及設計的步驟,以及每個文件的作用,稍微掌握了一些View類的方法,同時也學到了更多的界面設計的方法,比如如何實現(xiàn)一個TextVie
88、w里顯示多行數(shù)據(jù),如何自定義視圖等。</p><p> 但同時我也遇到了問題,比如在編寫控制模塊代碼的時候,如何何時按鍵監(jiān)聽這一塊讓我很頭疼,另外在設計界面整體布局的時候,如何編寫XML文件,這也是很大的問題后來通過查閱資料,對這些問題都做到了很好的解決</p><p> 總之,在這一次的課程設計過程中,我查閱了大量的資料,對 Java 有了一 點初步的認識,對于軟件工程這些輔助性的教
89、材也鞏固了不少,為我這次的課設 提供了很大的幫助,鍛煉了我的能力讓我掌握了一門新的程序設計語言:java 語言,系統(tǒng)地學習了數(shù)據(jù)庫方面的知識,并更進一步提高了我在程序設計、調(diào)試 方面的技巧。更重要的是,它還讓我認識到了自己的不足,在編程方面,我僅僅 是剛剛?cè)腴T而已,以后的道路任重道遠,需要我不斷的豐富自己、充實自己,這 樣才能在程序設計方面有所收獲。</p><p> 參考文獻 [1] 李偉、王國輝 an
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- android課程設計
- android課程設計報告資料
- android課程設計-高級應用
- android平臺掃雷游戲課程設計
- android課程設計---基于android平臺的自動鬧鐘
- android課程設計(含源代碼)
- android課程設計--基于android的手機安全衛(wèi)士
- android貪吃蛇課程設計報告
- android視頻播放器課程設計
- android課程設計報告-訂餐外賣系統(tǒng)
- android課程設計__饒忠普.doc
- android開發(fā)計算器課程設計
- 基于android天氣預報課程設計
- android課程設計報告--猜數(shù)字小游戲
- android課程設計連連看小游戲
- android_課程設計報告--基于android系統(tǒng)的小查詢工具
- android課程設計學生信息管理系統(tǒng)
- android-打飛機游戲-課程設計論文
- android課程設計---基于android系統(tǒng)的音樂播放器設計與實現(xiàn)
- android在校課程設計_戰(zhàn)斗機(java游戲)
評論
0/150
提交評論