中華大學資訊學士學位學系 101 學年度專題製作期末報告
遊戲導向之旅遊導覽系統
指導老師:
張欽智 助理教授
專題組員:
龔正維 B09829001 陳暐倫 B09829002 鄭育翔 B09829006
專題編號: PRJ2012-CSIE-10112
中華民國:102 年 6 月 24 號
1
目錄
摘要...3
1. 研究背景與目的...3
1.1 背景...3
1.2 目的...3
2. 開發環境...4
2.1 軟體...4
2.2 硬體...5
3. 專題分工...6
4. 專題進度表...7
5. 系統設計與架構...8
5.1 使用者架構...8
5.2 主要功能...9
6. 專題內容...10
6.1 程式執行畫面(主程式)...10
6.2 程式執行畫面(導覽模式)...12
6.3 小遊戲跳轉頁面...15
6.4 小遊戲執行畫面(猜拳)...17
6.5 小遊戲執行畫面(猜數字)...19
2
6.6 小遊戲執行畫面(接雞蛋)...20
6.7 小遊戲執行畫面(猜價格)...23
6.8 小遊戲執行畫面(猜字母)...25
6.9 小遊戲執行畫面(抽抽樂)...27
6.10 當地簡介、資料庫評分...29
6.11 程式執行畫面(遊戲模式)...30
6.12 特別景點的獎勵...32
7. 困難與解決方式...34
8. 未來展望...34
9. 結語...35
銘謝...35
資料參考...35
3
摘要
科技日新月異,在幾乎人手一機的台灣,手機已成為人們的必需品,手機也 不在只是手機,它的功能越來越多,不再是單純的通話而已,同時還要帶來娛樂 性、方便性,而我們將針對手機的導覽做研究,我們的主題是遊戲式旅遊導覽,
讓你可以在旅遊場景中暢行無阻並獲取當地資訊。
使用這套系統,你便不需要再為了不清楚當地好玩的資訊而上網搜尋,因為 它可以將該地區好玩、好吃以及當地的購物商圈呈現在你眼前,它不只是個手機 App 的遊戲軟體,它還可以在你玩遊戲所經過店家時顯示出該店家的詳細資料及 圖片,我們將把比例尺放大,讓你能更清楚的了解當地的景觀。
這項研究可以廣泛的使用在各個有遊客的地方,比如:動物園、商店街、觀 光景點……等,因為你走到的地方都可以為你顯示,可以說是凡走過必留下痕跡,
並且對人、事、物加以介紹,帶給使用者相當的便利性。
1.研究 背景與目的
1.1 研究背景
近年來手機不斷的推陳出新,由一般只有接聽功能,慢慢的進步到能拍照、
聽音樂等等功能,尤其最近手機更進化到能上網、記事本等功能的智慧型手機,
其中以 Apple 的 I phone 跟宏達電的 HTC 為主軸,由於 Apple 的手機平台 IOS,只限制於 Apple 自家的產品,所以我們就選擇普及化較大的 GOOGLE 的 Android 平台。
1.2 目的
我們之所以會選擇行動手機平台是因為一開始講到的,手機進步到智慧型手 機,所以擁有一隻智慧型手機就可以提供許多功能,我們打算開發一個遊戲式旅 遊導覽,在玩遊戲時可以快速的知道當地好玩、好吃、好看的衣飾...等商圈,
以及能夠呈現出該店家的介紹,這樣就不用一直翻閱當地導覽手冊,就不會翻了 老半天看不懂手冊,發生找不到想要到當地遊玩(逛)的地方,還是走錯地方,繞 了一大圈才找到想觀看的部份,以後想去別的地方玩就可以更加清楚、方便。
4
2.開發環境
2.1 軟體
Eclipse 是由 Open Source Community 所創建的開發軟體,並被廣泛地使用 在許多不同的領域。
例如:可作為 Java 應用程式與 Android App 的開發環境。大多數人都知道 Eclipse 是 Java 的 Integrated Development Environment(IDE)。至今,它已 佔據超過全世界 Java 開發環境市場的 50%。 Eclipse 計畫是由 Eclipse 基金會 所管理。Eclipse 基金會是一個非營利性的組織,大多由以科技公司為背景的成 員所組成。
Eclipse 可由額外的附加功能擴充,目前已有幾個 open source 的計劃案與公司,
將額外的附加元件擴充至 Eclipse 中,例如:Android 開發。Eclipse 也可被用 在一般性用途的應用程式開發上。
圖片出
處:http://t1.gstatic.com/images?q=tbn:ANd9GcTR1FnZAwOZUsdLTtHopSSA_L9 428vShRIJrjwZK9n70DY04wroIQ
圖 1 Eclipse Design
5
Android SDK 提供了使用者需要建立的 API 庫和開發工具,測試,調試應用 程序的 Android。整合何必要的開發工具使得是一個新的 Android 開發者不必花 額外的時間安裝,下載此一 ADT 封包即可快速啟動開發軟件。
它包括必不可少的 Android SDK 組件和一個版本的 Eclipse IDE 內置的 ADT
(Android 開發工具),以簡化使用者的 Android 應用程序開發 圖片出處:http://developer.android.com/sdk/index.html
2.2 硬體
PC & Notebook
我們以手邊所擁有的資源進行開發,家中使用桌上型電腦外出、學校討論時 使用筆記型電腦以增進開發效率。
Android 系統手機
由於 Android 作業系統的開放性和可移植性,它可以被用在大部分電子產品 上,Android 作業系統大多搭載在使用了 ARM 架構的硬體設備上使裝置更加省電 利於行動的便利。但是同樣也有支援 X86 架構的 Android 作業系統,比如 Google 的 Google TV 就是使用一個特別定製的 X86 架構版本的 Android 操作系統,
Android 可以像用電腦上網一樣,使用任何服務。
圖 2 Android SDK Package
6
3.專題分工
程式設計 美工設計 蒐集資料 場地勘查
龔正維 ★ ★ ★
陳暐倫 ★ ★
鄭育翔 ★ ★ ★
‧程式撰寫
‧資料收集
‧場地勘查
‧程式撰寫
‧資料收集
‧場地勘查
龔正維
‧資料蒐集
‧美工設計
‧報告實作
陳暐倫 鄭育翔
圖 3 組員分工
7
4.專題進度表
Month
Work
Feb Mar Apr May Jun
場地勘查與蒐集資料
★ ★學習相關軟體
★ ★ ★ ★程式開發
★ ★ ★實作與整合
★ ★測試與偵錯
★ ★報告與發表成果
★預定進度百分比
10% 35% 60% 90% 100%8
5.系統設計與架構
5.1 使用者架構
在設計一套系統時,要先預想可能有哪些功能,提供給使用者,所以我們先設計 了一張流程圖。
USER
擲骰子 遊戲介紹 離開遊戲
玩遊戲
玩 不玩
贏 輸
優惠劵
看街景
規則敘述
圖 4 系統架構圖
9
5.2 主要功能
1.街景介紹:
在使用者開始遊戲之後,每到一個景點將會有當地的實景圖與特色介紹,讓使用 者了解當地景色。
2.優惠卷:
每到一個景點贏得小遊戲將會得到一張當地特色小吃的優惠卷,增加使用者實際 前往當地一覽的動機。
3.顯示位置:
顯示規劃範圍內玩家的位置,讓使用者知道自己的所在位置,方便使用者前往當 地著名街景。
10
6.專題內容
6.1 程式執行畫面(主畫面)
左邊為全景地圖,右邊三個 button 分別是導覽模式、遊戲模式、離 開遊戲,我們也提供景點直擊瀏覽當地景點。
圖 5 遊戲主畫面
11
介面:
12
6.2 程式執行畫面(導覽模式)
導覽模式的配置就以兩個Image view和三個button去呈現,左方 Image view為規劃範圍的俯瞰圖,中間button擲骰子,下方Image view
是當地街景圖,右上角edittext可輸入景點編號直接跳到該景點,右 方兩個button分別為景點名稱與離開遊戲,在點下骰子後,隨機取亂 數值累加決定步行的位置Image。程式碼如下:
圖 6 導覽模式進行畫面
13
活動:
14
15
6.3 小遊戲跳轉頁面
點玩擲骰子後,選擇是否遊玩當地小遊戲的跳轉視 AlertDialog(對話 視窗).注:MessageBox 是"阻塞"特性,就是當 MessageBox 沒有被按 下確定或是取消按鈕,程式不會繼續往下執行。Android 的
AlertDialog 只是單存的對話方塊跳出來,程式會繼續往下執行.
圖 7 遊戲跳轉頁面
16
活動:
17
6.4 小遊戲執行畫面(猜拳)
製作 3 個 button 分別做比較,以剪刀為例隨機產生值為 1 時為平手 2 電腦獲勝 3 玩家勝出得到優惠券.
活動:
圖 8 小遊戲-猜拳
18
19
6.5 小遊戲執行畫面(猜數字)
當使用者點選 BUTTON 後,先去判斷 BUTTON 有無被點選過(提取 BUTTON 的 SETTEXT 內容),若沒有被點選,則翻開數字。接著讓
電腦去選取一個 BUTTON。電腦選擇 BUTTON 利用 RANDOM 隨 機點選 BUTTON 與及 BOOLEAN 變數判斷電腦有沒有選擇過
BUTTON,若是選過則將 BOOLEAN 變數更改,跳出 WHILE 迴圈。
圖 9 小遊戲-猜數字
20
6.6 小遊戲執行畫面(接雞蛋)
活動:
圖 10 小遊戲-接雞蛋
21
運用 handler,runnable.第一個 runnable 我們設定每 0.8 秒向下掉落.
第二個 runnable 經過每 1 秒做一次接到的累加動作並將接到的圖片 消失與未接到的圖片消失直到時間結束輸出結果.
活動:
22
23
6.7 小遊戲執行畫面(猜價格)
設定兩個陣列,一個字串陣列與整數陣列.使用 random 選出題目(字 串陣列與相應整數陣列的位置)以玩家最後輸入的整數價格(整數陣 列的值)判別答案是否正確.
圖 11 小遊戲-猜價格
24
活動:
25
6.8 小遊戲執行畫面(猜字母)
設定一字串陣列,random 選出題目(陣列值),將選出的字串轉為值後 把字首與字尾留下中間改為符號”-“後開始猜字母,當玩家猜對時 顯示出猜對的字母並消除”-“繼續猜下一個字母,錯誤則顯示”錯 了!”.
圖 12 小遊戲-猜字母
26
活動:
27
6.9 小遊戲執行畫面(抽抽樂)
設一初始值,當按下 button 時隨機產生一數與其比較勝利後獲得優惠 券.
活動:
28
29
6.10 當地簡介、資料庫評分
使用 imageview 載入圖片再設一個 drawableview 作為圖片介紹.評分 則為創建一個資料庫,新增欄位值.
圖 13 簡介、資料庫評分
30
6.11 程式執行畫面(遊戲模式)
左邊為景點地圖,中間 imagebutton 為骰子,下面 imageview 為景點 圖,每當到達一個景點會有 toast 訊息說明。
圖 14 執行畫面(遊戲模式)
31
活動:
32
6.12 特別景點的獎勵
到達特定景點和蒐集一定的景點數量會有額外獎勵
圖 15 特別景點獎勵
33
活動:
34
7. 困難與解決方式
搜尋資料庫問題:用 INTENT 及 BUNDLE 將值傳入另一個 JAVA 後,立即 去資料庫搜尋時會出錯。
解決方法:SQL 指令寫法要觀看有無用空白隔開,不然會出現錯誤:
EX.SELECT *FROMTABLE,中間要用空白隔開成 SELECT * FROM TABLE
新增值進去時,要去看 TABLE 的定義,不然會出現問題。
電腦隨機點選按鈕:使用者點選 BUTTON 後,讓電腦也選擇 BUTTON,
達到互動。
解決方法:利用 WHILE 迴圈及 BOOLEAN 變數讓電腦可以隨機選擇按鈕以 及判斷按鈕有沒有被選擇過。
類似接雞蛋圖片每秒向下移動:遊戲開始圖片每秒向下移動。
解決方法:利用 Handler()和 Runnable(),handler.postDelayed(this, 1000);使其 每一秒向下移動。
Android Out Of Memory 的問題:當需要使用大量圖片時,經常出現此問 題。
解決方法:要使用 mBitmap.recycle();的方法來釋放圖片,才不會造成 OOM。
8.未來展望
因為我們以旅遊導覽系統為出發點,所以我們未來研究的方向可能 有下列幾項:
1.使用 GOOGLE MAP 讓使用者方便看到附近的街景圖。
2.建立線上資料庫使評分系統更具公正性。
35
9.結語
在專題製作的過程中讓我們對Android的軟體開發有了更進一步的了解,經 由學習寫作程式語言、系統結構分析,資料庫建構等等,使得在程式構思上打下 良好的基礎。在製作過程中,整體團隊合作以及彼此獨立思考解決問題的能力,
將來在面對問題上能更加得心應手。在建置整個APP的架構中,雖然製作過程有 些辛苦,但是我們學會了,如何發揮一個團隊的力量,分工合作來克服困難,最 終完成自己預定的目標和老師的期許與要求。
銘謝
在此專題製作之中,我們遭遇許多問題,尋找很多解決方法,翻書、上網查 資料,課堂上的學習,包括詢問我們的專題指導老師-張欽智老師,若有疑問或 者是我們的想法,經過與張欽智老師的討論,也會給予我們很大的受益。在此感 謝此專題製作互相合作的組員,同時也非常感謝所有曾幫助過我們專題的人。
參考資料
[1] 陳會安,新觀念 Android SDK 程式設計範例教本,旗標,2011 年 11 月 23 日
[2] 孫宏明,Android 4.X 手機/平板電腦程式設計入門、應用到精通(第二版)(附 光碟), 碁峰, 2012 年 1 月 9 日
[3] 佘志龍、陳昱勛、鄭名傑、陳小鳳,Google Android SDK 開發範例大全、第 3 版, 悅知文化,2011 年 4 月
[4] 陳會安,Java SE 7 與 Android 4.x 程式設計範例教本,碁峰,2011 年 12 月 29 日
[5] 新竹市電子地圖,http://map.hccg.gov.tw/Main94_1024.aspx
[6] Paul J. Deitel and Harvey M. Deitel, "Android: How to Program", Prentice Hall, February 18, 2012.
[7] Charles Petzold,"Programming Windows Phone 7 - Microsoft Silverlight Edition", Microsoft Press, December 2010