臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129) 葉 修 安 (9903130) 蔡 瑞 盛 (9906136) 鄭 登 耀 (9906137) 指 導 老 師 : 張 佩 琪 老 師 中 華 民 國 一 百 零 一 年 十 二 月 1
中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 一 而 目 前 Android 是 世 界 各 地 均 深 受 歡 迎, 目 前 市 佔 率 最 高 的 智 慧 型 手 機 作 業 系 統, 其 一 大 特 點 就 是 他 的 作 業 系 統 是 開 放 原 始 碼 的 因 此 希 望 藉 由 Android, 開 出 一 套 有 趣 的 守 城 遊 戲 不 過 現 今 大 部 分 的 守 城 遊 戲 都 是 與 電 腦 互 相 戰 鬥, 然 而 隨 著 資 訊 科 技 的 發 達, 用 手 機 連 線 已 是 稀 鬆 平 常 之 事, 因 此 希 望 透 過 作 專 題 的 學 習, 努 力 完 成 可 連 線 的 守 城 遊 戲 關 鍵 字 :Android 可 連 線 的 守 城 遊 戲 2
目 錄 頁 碼 中 文 摘 要... Ⅰ 目 錄... Ⅱ 表 目 錄... Ⅳ 圖 目 錄... Ⅴ 第 一 章 緒 論... 1 1-1 研 究 動 機 與 目 的... 1 1-2 製 作 方 法 與 進 行 步 驟... 2 1-3 人 力 分 配 及 目 標... 3 第 二 章 Eclipse 與 Android 相 關 知 識... 5 2-1 Eclipse... 5 2-2 Android... 7 第 三 章 專 題 過 程... 13 3-1 構 思 及 製 作... 13 3-2 製 作... 14 3-3 遭 遇 問 題 及 解 決 方 式... 14 第 四 章 專 題 成 果... 17 4-1 進 攻 系 統....17 4-2 防 禦 系 統.... 18 4-2 連 線 系 統.... 19 第 五 章 專 題 檢 討 及 結 論... 21 5-1 研 究 發 現... 21 5-2 研 究 限 制... 23 3
5-3 研 究 建 議 及 未 來 研 究 方 向... 24 5-4 研 究 檢 討... 24 參 考 文 獻... 26 4
表 目 錄 頁 碼 表 1-2-2 遊 戲 流 程 表... 7 表 3-3-9 編 碼 表.... 20 表 4-1-1 怪 物 資 訊... 22 表 4-1-2 防 禦 塔 資 訊... 23 5
圖 目 錄 頁 碼 圖 1-2-3 甘 特 圖... 8 圖 3-2-1 遊 戲 初 始 圖... 11 圖 3-2-2 遊 戲 介 面 圖... 12 圖 3-2-3 第 二 階 段 圖... 12 圖 3-2-4 第 三 階 段 圖... 13 圖 3-2-5 遊 戲 選 單 圖... 13 圖 3-3-1 遊 戲 架 構 圖... 14 圖 3-3-3 防 禦 塔 判 斷 圖... 16 圖 3-3-6 血 量 顯 示... 17 圖 3-3-6( 一 ) 滿 血 圖 滿 血 底 圖... 17 圖 3-3-6( 二 ) 損 血 圖... 17 圖 3-3-6( 三 ) 無 血 圖... 17 圖 3-3-8 socket 架 構 圖... 18 圖 3-3-9 連 線 判 斷 圖... 19 圖 5-3 未 來 展 望 圖... 25 6
第 一 章 緒 論 1-1 研 究 動 機 與 目 的 現 代 的 人 不 管 是 在 通 勤 時 間 上 班 放 鬆 的 時 候, 幾 乎 是 人 手 一 機, 然 後 點 開 遊 戲 滑 呀 滑, 點 呀 點 對 於 那 些 玩 手 機 的 人, 他 們 沉 溺 在 那 爽 快 刺 激 緊 張 的 氛 圍 中, 這 是 無 比 的 樂 趣, 不 過 對 於 製 作 遊 戲 的 人 來 說, 這 可 是 一 個 龐 大 的 商 機, 因 為 這 是 智 慧 型 手 機 席 捲 全 世 界 後, 才 出 現 的 新 興 行 業 因 此 我 們 找 齊 了 對 此 未 來 發 展 有 興 趣 的 人, 希 望 增 進 自 己 的 專 業, 設 計 一 套 有 趣 的 遊 戲, 並 提 早 體 會 設 計 遊 戲 的 辛 苦, 培 養 自 身 的 經 驗 1-2 人 力 分 配 及 目 標 1-2-1 人 力 分 配 葉 冠 麟 : 程 式 架 構 設 計 美 術 編 輯 報 告 製 作 葉 修 安 : 遊 戲 構 思 硬 體 設 備 提 供 與 維 護 升 級 資 料 蒐 集 報 告 製 作 蔡 瑞 盛 : 報 告 製 作 影 片 剪 輯 程 式 介 面 鄭 登 耀 : 報 告 規 劃 美 術 編 輯 1-2-2 遊 戲 流 程 表 7
1-2-3 甘 特 圖 8
第 二 章 Eclipse 與 Android 相 關 知 識 2-1 Eclipse Eclipse 是 一 套 開 放 原 始 碼 的 整 合 開 發 環 境, 可 用 來 編 輯 編 譯 執 行 和 除 錯 特 定 語 言 的 程 式 雖 說 Eclipse 最 初 的 設 計 是 適 用 在 Java 程 式 的 開 發, 但 因 其 提 供 了 強 大 的 外 掛 機 制, 亦 可 用 於 開 發 C/C++ PHP 等 程 式 1. 專 案 管 理 : 對 於 大 型 程 式 來 說, 有 專 案 管 理 的 介 面 是 很 重 要 的, 所 有 檔 案 都 一 目 瞭 然 2. 強 大 的 除 錯 器 支 援 : 它 提 供 良 好 的 除 錯 器 介 面, 讓 除 錯 工 作 相 當 輕 鬆 3. 強 大 的 自 動 完 成 功 能 : 基 本 上 只 要 是 能 夠 由 程 式 碼 直 接 推 斷 出 形 別 的 物 件, 幾 乎 都 有 自 動 完 成 的 功 能, 而 各 種 括 號 的 輸 入, 一 樣 有 自 動 完 成 的 功 能, 這 點 可 以 說 是 它 最 強 的 地 方 4. 優 良 的 介 面 : 例 如 Traceback 印 出 來 時, 自 動 將 程 式 碼 錄 徑 標 成 連 結, 點 擊 就 可 以 直 接 跳 到 該 檔 案 的 該 行 程 式 碼, 使 用 上 相 當 方 便 2-2 Android 此 主 題 以 介 紹 新 開 一 個 android 後, 在 還 沒 編 輯 之 前, 開 發 程 式 的 共 通 結 構, 以 下 以 條 例 式 表 達 : 2-2-1. Android 應 用 程 式 基 本 上 是 由 下 面 四 個 區 塊 組 合 而 成 : Activity : 如 同 android application 的 user interface Broadcast Intent Receiver : 沒 有 視 窗 介 面, 用 來 對 外 部 的 事 件 做 一 些 處 理, 但 是 可 以 用 Notification Manager 來 通 知 使 用 者 某 個 事 件 被 觸 發, 在 連 線 對 弈 中, 如 果 玩 家 正 在 處 理 其 他 事 件, 用 Notification Manager 實 做 通 知 輪 到 玩 家 的 回 合 了 " 的 功 能 Service : Service 是 沒 有 使 用 者 介 面, 而 且 是 可 以 長 時 間 運 作 的 程 式 9
Content Provider : 應 用 程 式 可 以 將 應 用 程 式 的 資 料 儲 存 到 檔 案,SQList 資 料 庫 或 其 的 機 制 儲 存 起 來. 當 開 發 人 員 希 望 應 用 程 式 的 資 料 可 以 被 其 他 應 用 程 式 共 享 時, Content Provider 就 會 非 常 有 用.Content Provider 實 現 了 讓 應 用 程 式 之 間 互 相 分 享 資 料 的 功 能 2-2-2. Resource 介 紹 : 每 一 個 android 的 專 案 底 下 有 src 資 料 夾,src 分 類 出 許 多 types, 這 些 types 用 來 定 義 一 些 提 供 給 application 的 資 源, 例 如 :Animation Resources: 先 定 義 預 先 確 定 的 動 畫 Drawable Resources 定 義 不 同 的 bitmap 或 者 XML5 Layout Resource: 定 義 application 的 某 一 個 UI 的 layout Menu Resource : 定 義 application 的 某 一 個 activity 的 menu String Resources : 定 義 字 串 Gen[Java file] 底 下 的 R.class 則 是 記 錄 resource types 客 製 化 程 式 碼 的 位 置 10
第 三 章 專 題 過 程 3-1 構 思 及 設 計 必 須 選 擇 使 用 哪 種 方 式 進 行 手 機 連 線, 就 目 前 擁 有 兩 種 方 式, 其 中 一 種 是 藍 芽, 藍 芽 為 目 前 大 部 分 手 機 及 PC 等 個 人 電 子 產 品 所 擁 有 的 設 備, 經 常 使 用 在 無 線 鍵 盤 滑 鼠 及 手 機 資 料 傳 輸, 為 一 普 遍 使 用 的 傳 輸 方 式 ; 另 一 種 是 網 路, 網 路 為 全 世 界 資 料 傳 輸 的 主 要 方 式, 只 要 連 上 網 路, 不 論 在 世 界 任 何 地 方 皆 能 進 行 傳 輸 目 標 是 將 原 為 單 人 遊 戲 之 塔 方 遊 戲, 變 更 為 雙 人 連 線 對 戰 的 形 式, 所 以 在 對 戰 的 部 分, 將 地 圖 切 割 成 兩 個 部 分, 怪 物 當 作 攻 擊 對 方 的 工 具, 雙 方 擁 有 相 同 的 血 量 金 錢 領 地, 雙 方 放 置 怪 物 在 原 規 劃 的 路 徑 上, 以 自 己 領 地 的 底 端 為 放 怪 位 置, 怪 物 各 自 朝 向 對 方 領 地 的 方 向 前 進, 如 怪 物 進 入 路 徑 在 對 方 領 地 底 端 的 位 置, 則 減 少 對 方 血 量, 玩 家 為 了 防 止 怪 物 對 自 己 產 生 傷 害, 可 以 放 置 防 禦 塔 在 自 己 領 地 內 路 徑 以 外 的 位 置, 如 對 方 血 量 歸 零 則 獲 勝 3-2 製 作 流 程 前 一 個 月 進 行 構 思 專 題 題 目 及 內 容, 同 時 學 習 編 譯 環 境 設 置, 了 解 Eclipse Java 及 Android 等, 根 據 目 前 現 況 與 指 導 老 師 討 論 更 改 題 目 及 內 容 開 始 製 作 時, 先 使 用 一 個 範 例 進 行 實 驗, 包 括 圖 片 放 置 怪 物 移 動 點 擊 範 圍 判 斷 攻 擊 功 能 怪 物 消 失...... 待 部 分 基 本 功 能 實 驗 成 功 後, 再 使 用 更 改 過 的 範 例 進 行 進 一 步 的 製 作, 進 一 步 更 改 有 圖 形 繪 製 設 定 怪 物 路 徑 怪 物 血 量 怪 物 移 動 速 度 選 單 製 作 防 禦 塔 放 置 防 禦 塔 刪 除 防 禦 塔 攻 擊 連 線 等 功 能 圖 最 初 範 例 只 擁 有 任 意 放 置 圖 片 的 功 能 第 一 階 段 更 改 後 範 例 能 夠 判 斷 範 圍 放 置 防 禦 塔 與 攻 擊 呈 現, 放 置 怪 物 怪 物 一 路 徑 前 進, 加 入 背 景, 怪 物 與 防 禦 塔 皆 只 有 一 種, 且 只 有 單 方 功 能 11 圖 3-2-1 初 始 圖
第 二 階 段 更 改 為 多 種 防 禦 塔 與 多 種 怪 物, 並 且 加 強 布 景, 防 禦 增 加 刪 除 防 禦 塔 功 能, 遊 戲 平 衡 調 整, 加 入 程 式 包 裝 介 面 圖 3-2-2 遊 戲 介 面 圖 3-2-3 第 二 階 段 圖 第 三 階 段 更 改 後, 增 加 連 線 功 能, 所 有 功 能 皆 改 為 雙 向 對 戰, 並 且 方 為 兩 個 專 案 檔, 方 別 為 玩 家 1 與 玩 家 2 12
圖 3-2-4 第 三 階 段 更 改 ( 加 入 連 線 ) 最 後 將 兩 個 專 案 合 併 為 一 個 專 案, 增 加 玩 家 選 單 ( 選 擇 玩 家 1 或 玩 家 2), 遊 戲 設 定 微 調, 包 括 圖 示 更 改 測 試 與 解 決 錯 誤 圖 3-2-5 玩 家 選 單 包 括 本 組 共 有 兩 組 需 要 將 專 題 製 作 成 連 線 遊 戲, 製 作 連 線 時, 有 一 藍 芽 (Blue-tooth) 範 例, 功 能 為 聊 天 室, 但 當 時 無 法 成 功 加 入 專 案 當 中 執 行 在 那 段 期 間, 則 另 外 使 用 一 網 路 連 線 聊 天 室 範 例 進 行 更 改, 而 另 一 組 則 繼 續 進 行 藍 芽 (Blue-tooth) 的 測 試, 兩 組 同 時 進 行 不 同 的 連 線 測 試, 以 防 最 後 無 法 成 功 使 功 能 依 規 劃 運 行, 導 致 兩 組 皆 無 法 完 成 連 線 功 能 13
3-3 製 作 內 容 3-3-1 程 式 架 構 程 式 分 為 幾 個 主 要 部 分 有 變 數 宣 告 繪 圖 觸 碰 判 斷 其 他 功 能, 繪 圖 為 顯 示 影 像 供 使 用 者 讀 取, 真 正 主 要 功 能 在 觸 碰 判 斷 部 分, 功 能 包 括 放 置 怪 物 建 置 防 禦 塔 開 始 與 結 束 發 送 訊 息 等 功 能, 其 他 功 能 包 括 血 量 顯 示 怪 物 資 料 重 置 防 禦 塔 資 料 重 置 網 路 連 線 攻 擊 功 能 時 間 等 功 能, 並 且 由 繪 圖 及 觸 碰 功 能 部 分 呼 叫 類 別 程 式 架 構 圖 圖 3-3-1 14
3-3-2 選 單 方 式 來 呈 現 功 能, 而 是 使 用 區 域 座 標 來 判 斷 以 及 圖 片 製 成, 所 以 每 個 按 鍵 皆 須 另 外 特 別 製 作, 包 括 為 為 按 下 按 鈕 圖 示 及 按 下 按 鈕 後 之 圖 示 3-3-3 防 禦 塔 點 選 防 禦 塔 放 置 位 置 時, 必 須 要 校 正 點 選 的 位 置, 因 點 擊 銀 幕 所 得 到 的 座 標 很 難 是 放 置 的 位 置, 在 一 定 區 域 內 限 定 只 能 放 置 一 個 防 禦 塔, 使 用 For 迴 圈 及 If 判 斷 式 校 正 點 選 的 位 置, 並 且 設 定 該 區 域 禁 止 再 放 置, 禁 止 放 置 區 域 包 括 怪 物 路 徑, 使 用 1 表 示 有 塔 放 置 或 為 怪 物 路 徑, 而 0 則 為 可 放 置 位 置 使 用 拆 除 功 能, 只 能 對 為 1 的 區 域 拆 除, 且 怪 物 路 徑 的 1 不 可 變 更 圖 3-3-3 防 禦 塔 判 斷 圖 防 禦 塔 的 位 置 同 時 使 用 兩 種 方 式 儲 存, 一 儲 存 到 另 外 的 Java 檔 中, 再 依 序 畫 出 塔, 另 一 則 是 存 入 陣 列 當 中, 在 攻 擊 怪 物 時 讀 取, 並 且 計 算 怪 物 及 防 禦 塔 的 距 離, 以 判 斷 防 禦 塔 是 否 對 怪 物 進 行 扣 血 及 繪 出 攻 擊 效 果 畫 面 defend_x[][]=touch_x;// 我 方 防 禦 塔 X 座 標 defend_y[][]=touch_y;// 我 方 防 禦 塔 Y 座 標 因 我 方 放 置 防 禦 塔, 必 須 使 對 方 也 知 道 放 置 位 置, 所 以 發 送 防 禦 塔 種 類 與 座 標 給 對 方 15
opponent_defend_x[][]=integer.parseint( tmp.substring(3,6)); opponent_defend_y[][]=integer.parseint( tmp.substring(6,9)); 3-3-4 怪 物 所 有 怪 物 之 初 始 值 皆 預 設 好, 一 方 怪 物 設 置 在 上, 另 一 方 設 置 在 下, 每 按 下 放 怪 紐 時, 對 方 怪 物 數 量 陣 列 加 一, 並 且 同 時 傳 送 訊 息 給 伺 服 器, 令 對 方 也 放 出 怪 物, 始 雙 方 能 同 步 進 行 遊 戲 我 方 :opponent_monster[ 種 類 ]= opponent_monster[ 種 類 ]+1; 對 方 :monster[ 種 類 ]=monster[ 種 類 ]+1; 當 怪 物 血 量 歸 零 或 對 玩 家 造 成 血 量 損 失 後, 則 將 怪 物 陣 列 重 置 重 置 方 法 為 將 後 面 的 資 料 對 消 失 的 怪 物 依 序 遞 補, 並 且 將 怪 物 數 量 陣 列 減 一 3-3-5 攻 擊 遊 戲 每 刷 新 畫 面 一 次, 就 依 防 禦 塔 的 種 類 及 數 量 怪 物 的 種 類 及 數 量 全 部 計 算 出 距 離, 如 進 入 攻 擊 範 圍 且 為 距 離 最 近 之 怪 物, 則 對 該 怪 物 扣 除 該 防 禦 塔 攻 擊 力 之 血 量, 為 了 避 免 怪 物 過 於 接 近, 而 同 時 有 兩 隻 以 上 怪 物 符 合 攻 擊 條 件, 導 致 同 時 攻 擊 兩 隻 以 上 之 怪 物, 在 攻 擊 完 第 一 支 符 合 條 件 之 怪 物 後, 則 跳 出 該 塔 之 判 斷 式, 避 免 上 述 情 形, 可 減 少 對 於 不 必 要 的 迴 圈 執 行 3-3-6 玩 家 及 怪 物 血 量 顯 示 怪 物 血 量 的 顯 示 與 玩 家 血 量 顯 示 個 別 採 用 兩 種 不 同 的 方 式 顯 示 怪 物 血 量 顯 示 為 圖 片 直 接 顯 示, 製 作 不 同 血 量 時 所 顯 示 的 圖 示, 共 將 其 切 割 成 十 等 分, 從 滿 血 量 到 剩 下 最 後 十 分 之 一, 並 且 判 斷 目 前 血 量 與 滿 血 量 的 比 例 為 多 少, 進 行 顯 示 目 前 血 量 如 圖 3-3-6 為 血 量 顯 示 圖 16
圖 3-3-6 血 量 顯 示 血 量 範 圍 圖 示 91%~100% 81%~90% 71%~80% 61%~70% 51%~60% 41%~50% 31%~40% 21%~30% 11%~20% 1%~10% 玩 家 血 量 的 顯 示 使 用 迴 圈 的 方 式 呈 現, 先 製 作 底 圖 為 滿 血 量 之 圖 示, 以 及 傷 害 圖 示 及 沒 有 血 量 的 圖 示, 當 怪 物 進 入 路 徑 的 底 端 時, 對 進 入 端 的 玩 家 血 量 進 行 減 少, 先 使 用 傷 害 圖 示 覆 蓋 在 底 圖 上, 顯 示 所 造 成 的 傷 害, 再 將 沒 有 血 量 的 圖 示 覆 蓋 上 去, 沒 有 血 量 的 圖 示 覆 蓋 時 依 遊 戲 畫 面 刷 新 呈 現 遞 加, 直 到 與 傷 害 圖 示 等 長 為 止, 使 血 量 顯 示 呈 現 動 態, 且 可 以 據 各 種 傷 害 及 比 例 進 行 調 整 顯 示, 顯 示 精 準 度 較 直 接 繪 出 圖 示 顯 示 精 準, 且 不 用 匯 入 相 當 多 的 圖 片, 縮 減 程 式 的 大 小 滿 血 底 圖 圖 3-3-6( 一 ) 滿 血 圖 損 寫 圖 示 圖 3-3-6( 二 ) 損 血 圖 無 血 量 圖 示 圖 3-3-6( 三 ) 無 血 圖 17
3-3-7 時 間 遊 戲 設 定 為 固 定 時 間 畫 面 重 新 畫 一 遍, 為 執 行 時 間 加 上 延 遲 時 間, 但 會 依 據 每 台 手 機 的 執 行 速 度 不 同, 而 呈 現 快 慢 上 的 差 異, 雖 對 於 遊 戲 結 果 影 響 不 大, 因 雙 方 程 式 相 同 為 了 解 決 快 慢 上 的 差 異, 先 預 設 整 體 遊 戲 刷 新 畫 面 的 時 間, 再 取 程 式 開 始 到 結 束 的 時 間, 用 預 設 時 間 減 程 式 執 行 時 間 為 延 遲, 則 雙 方 就 會 呈 現 同 步 執 行 程 式 執 行 時 間 = 遊 戲 結 束 時 間 - 遊 戲 開 始 時 間 延 遲 時 間 = 預 設 刷 新 時 間 - 程 式 執 行 時 間 3-3-8 連 線 Socket 類 別 可 以 連 接 一 些 常 用 的 Internet 服 務, 在 連 線 後, 我 們 可 以 向 這 些 服 務 送 出 指 令 來 取 得 所 需 資 訊 ServerSocket 類 別 可 以 接 收 來 自 客 戶 端 的 請 求, 並 且 發 出 訊 息 給 客 戶 端 所 有 Socket 連 線 輸 出 輸 出 皆 須 寫 在 Try 內, Catch 內 IOException, 當 I/O 錯 誤 發 生 時 所 擲 回 的 例 外 狀 況 圖 3-3-8 socket 架 構 圖 接 受 客 戶 端 連 線 Socket socket = serversocket.accept(); 使 兩 支 手 機 連 線 採 用 網 路 的 方 式, 兩 支 手 機 藉 由 伺 服 器 端 進 行 傳 輸, 採 用 一 個 網 路 聊 天 室 範 例, 伺 服 器 的 功 能 為 將 所 收 到 的 訊 號 發 布 給 所 有 連 上 伺 服 器 端 的 使 用 者, 將 使 用 者 端 的 發 送 語 法 加 入 程 式 當 中, 當 有 放 置 怪 物 或 建 置 防 禦 塔 動 作 時, 就 發 送 訊 息 給 伺 服 器, 伺 服 器 在 發 送 給 所 有 連 上 伺 服 器 的 使 用 者 18
圖 3-3-9 連 線 判 斷 圖 連 線 只 局 限 於 同 一 網 域, 且 連 線 必 須 設 定 伺 服 器 之 IP 位 置 與 埠 號,IP 為 四 組 Int 數 字 範 圍 0~255, 埠 號 為 一 組 Int 數 字 範 圍 1025~65535 當 使 用 者 由 遊 戲 介 面 進 入 遊 戲 時, 程 式 將 會 連 上 Server 端 客 戶 端 需 知 道 伺 服 器 端 IP 位 置 serverip = InetAddress.getByName("192.168.0.105"); 埠 號 int serverport = 5051; 傳 送 字 串 第 一 碼 表 示 動 作 的 使 用 者, 第 二 碼 表 示 放 置 怪 物 或 放 置 防 禦 塔, 如 為 放 置 防 禦 塔 三 到 五 碼 為 X 座 標, 六 到 八 碼 為 Y 座 標, 接 收 到 放 置 訊 息 時 寫 入 對 方 防 禦 塔 座 標 陣 列 中, 及 傳 入 Java 檔 中 記 憶, 在 下 一 次 遊 戲 刷 新 畫 面 時 依 序 繪 出 ; 如 為 放 置 怪 物 第 三 碼 則 為 種 類, 寫 入 我 方 怪 物 陣 列 中 19
表 3-3-9 編 碼 表 邊 碼 表 第 1 碼 第 2 碼 第 3 碼 第 4~9 碼 表 示 動 作 方 攻 防 種 類 位 置 0 玩 家 一 對 方 防 禦 塔 刪 除 座 標 (X,Y) 1 玩 家 一 對 方 防 禦 塔 第 一 種 建 置 (X,Y) 1 2 (X,Y) 座 標 玩 家 一 對 方 防 禦 塔 第 二 種 建 置 (X,Y) 3 玩 家 一 對 方 防 禦 塔 第 三 種 建 置 (X,Y) 4 玩 家 一 對 方 防 禦 塔 第 四 種 建 置 (X,Y) 1 1 玩 家 一 自 己 怪 物 一 放 置 2 玩 家 一 自 己 怪 物 二 放 置 2 3 玩 家 一 自 己 怪 物 三 放 置 4 玩 家 一 自 己 怪 物 四 放 置 5 玩 家 一 自 己 怪 物 五 放 置 0 玩 家 二 防 禦 塔 刪 除 座 標 (X,Y) 1 玩 家 二 防 禦 塔 第 一 種 建 置 (X,Y) 1 2 (X,Y) 座 標 玩 家 二 防 禦 塔 第 二 種 建 置 (X,Y) 3 玩 家 二 防 禦 塔 第 三 種 建 置 (X,Y) 4 玩 家 二 防 禦 塔 第 四 種 建 置 (X,Y) 2 1 玩 家 二 自 己 怪 物 一 放 置 2 玩 家 二 自 己 怪 物 二 放 置 2 3 玩 家 二 自 己 怪 物 三 放 置 4 玩 家 二 自 己 怪 物 四 放 置 5 玩 家 二 自 己 怪 物 五 放 置 如 : 接 收 到 的 字 串 為 123, 表 示 玩 家 一 在 我 方 第 三 種 怪 物 加 一 接 收 到 字 串 為 21301301, 表 示 玩 家 二 在 對 方 防 禦 塔 陣 列 中 寫 入 第 三 種 防 禦 塔,X 座 標 301,Y 座 標 301 3-4 遭 遇 問 題 及 解 決 方 式 3-4-1. 銀 幕 大 小 除 Apple 產 品 以 外 大 部 分 皆 使 用 Android 系 統, 但 Apple 產 品 皆 有 固 定 的 銀 幕 像 素 大 小, 撰 寫 程 式 時 較 不 會 有 像 素 大 小 的 問 題, 而 使 用 Android 系 統 的 產 品 是 由 許 多 不 同 公 司 生 產, 且 銀 幕 像 素 大 小 沒 有 固 定, 造 成 撰 寫 程 式 時 會 有 圖 片 像 素 大 小 及 失 真 等 等 問 題 產 生, 造 成 程 式 功 能 在 不 同 產 品 上 顯 示 不 盡 相 同, 造 成 程 式 功 能 不 完 備 或 無 法 執 行 等 現 象 雖 然 目 前 部 分 較 新 的 手 機 平 板 等 個 人 電 子 產 品 會 自 動 調 整 程 式 顯 示 大 小, 使 程 式 能 夠 正 常 執 行, 但 要 使 全 部 的 Android 系 統 產 品 能 夠 正 常 顯 示 還 是 有 相 當 的 難 度 所 以 就 現 階 段 而 言, 只 需 能 在 部 分 特 定 機 器 上 能 正 常 顯 示 功 能 即 可 20
先 讀 取 銀 幕 長 寬 像 素, 以 原 先 設 計 顯 示 的 長 寬 除 以 銀 幕 長 寬, 獲 得 長 與 寬 之 比 值, 並 且 在 所 有 圖 形 顯 示 大 小 及 觸 碰 座 標 乘 判 斷 式 以 其 比 值, 則 可 正 常 顯 示 影 像 及 觸 碰 功 能, 但 還 是 有 小 數 點 誤 差 等 問 題 存 在 校 正 比 值 = 程 式 像 素 / 銀 幕 像 素 3-4-2 連 線 與 socket Socket 為 串 列 傳 輸, 所 以 每 一 個 訊 息 後 面 皆 須 加 上 換 行 符 號 \n, 但 使 用 者 接 收 到 時 看 不 到 有 換 行 符 號 \n 的 存 在, 造 成 實 驗 連 線 時 一 直 無 法 成 功 接 收 資 料 之 後 採 用 擷 取 自 串 的 方 式 進 行 讀 取 資 料, 只 要 擷 取 收 到 字 串 中 需 要 的 資 料 即 可, 不 會 受 字 串 尾 的 換 行 符 號 影 響 21
第 四 章 專 題 成 果 4-1-1 攻 擊 系 統 塔 防 遊 戲 機 基 本 的 進 攻 就 是 電 腦 出 怪 物 來 攻 擊 玩 家, 而 我 們 做 的 是 連 線 的 守 城 遊 戲, 所 以 出 怪 的 人 由 電 腦 轉 變 為 雙 方, 雙 方 彼 此 都 以 出 怪 作 為 攻 擊 對 方 的 方 法, 當 己 方 的 怪 物 進 入 到 敵 方 的 城 內, 造 成 對 方 血 量 減 少, 當 對 方 玩 家 血 量 歸 零, 即 獲 勝 ; 反 之, 當 我 方 血 量 歸 零, 則 失 敗 開 啟 攻 擊 選 單 後, 共 有 五 種 怪 物, 依 怪 物 強 度 有 不 同 的 價 格, 各 種 怪 物 也 有 不 同 的 屬 性, 有 移 動 速 度 及 血 量 上 的 差 異, 按 下 選 擇 之 怪 物 則 放 置 一 隻 該 怪 物 攻 擊 對 方, 並 且 扣 除 該 怪 物 價 格 之 金 額, 當 使 對 方 放 出 怪 物 之 血 量 歸 零, 獲 得 該 怪 物 之 掉 落 金 額 表 4-1-1 怪 物 資 訊 怪 物 圖 示 價 格 血 量 速 度 掉 落 金 額 A 怪 : B 怪 : C 怪 : D 怪 : 30 100 7 40 50 200 6 60 70 300 5 80 90 400 4 100 E 怪 : 110 600 3 120 4-1-2 防 禦 系 統 當 要 進 行 放 置 防 禦 塔 時, 必 須 打 開 防 禦 選 單 選 擇 放 置 塔 的 種 類 選 擇 後, 程 式 會 固 定 目 前 所 選 的 防 禦 塔, 之 後 放 置 皆 是 相 同 防 禦 塔, 並 且 顯 示 在 遊 戲 地 圖 的 左 下 方, 顯 示 資 訊 包 括 目 前 所 生 金 額 防 禦 塔 種 類 價 格 範 圍 與 攻 擊 力, 當 需 要 更 換 放 置 防 禦 塔 時, 需 開 啟 防 禦 選 單 點 選 其 他 防 禦 塔 當 放 置 防 禦 塔 時, 點 選 放 置 位 置 的 同 時, 扣 除 其 玩 家 金 錢 該 防 禦 塔 價 格 之 金 額 ; 當 玩 家 在 刪 除 狀 態 下, 點 選 防 禦 塔 時, 刪 除 該 點 選 區 域 防 禦 塔, 並 且 玩 家 金 額 增 加 該 防 禦 塔 拆 除 價 值 之 額 度 22
表 4-1-2 防 禦 塔 資 訊 防 禦 塔 圖 示 價 格 攻 擊 範 圍 拆 除 價 值 A 塔 : B 塔 : C 塔 : D 塔 : 100 1 400 50 150 2 300 75 200 4 180 100 400 6 150 200 23
第 五 章 專 題 檢 討 及 結 論 5-1 研 究 發 現 每 台 PC 連 上 網 路, 其 實 上 方 經 由 許 多 伺 服 器 才 連 到 網 際 網 路, 其 實 電 腦 所 顯 示 之 IP 為 此 網 域 內 的 IP, 非 真 正 連 到 網 際 網 路 之 IP, 所 以 在 連 線 部 分 只 侷 限 於 同 一 網 域 在 電 腦 模 擬 與 實 機 測 試 有 相 當 大 的 差 異, 雖 然 電 腦 能 模 擬 出 所 有 的 功 能, 但 過 於 理 想 化, 速 度 也 較 實 機 慢 許 多, 實 機 測 試 後 有 許 多 真 正 的 問 題 待 解 決 5-2 研 究 限 制 5-2-1 網 路 連 線 網 路 連 線 功 能 只 局 限 於 同 一 網 域 內, 網 路 技 術 開 發 是 有 相 當 的 難 度, 如 需 深 入 了 解 網 路 技 術, 需 要 相 當 長 的 研 究 時 間, 而 目 前 專 題 製 作 時 間 只 有 短 短 不 到 半 年 的 時 間, 想 要 使 網 路 連 線 功 能 非 常 完 備 相 當 困 難 5-2-2 硬 體 設 備 並 非 每 一 位 同 學 皆 有 Android 系 統 智 慧 型 手 機 在 開 發 時, 只 能 使 用 電 腦 模 擬, 在 專 題 製 作 到 一 半 時, 才 借 到 測 試 機, 開 始 實 機 測 試, 且 只 有 在 學 校 期 間 能 測 試, 無 法 隨 時 測 試 修 正 問 題 5-3 研 究 建 議 及 未 來 研 究 方 向 未 來 可 以 更 改 成 PC 版, 可 以 手 機 對 PC PC 對 PC 互 相 連 線, 並 且 解 決 網 域 上 之 限 制, 將 伺 服 器 端 寫 入 程 式 當 中, 不 須 再 特 別 架 設 一 伺 服 器 (Server), 則 在 世 界 的 任 何 地 方, 只 要 可 以 連 上 網 際 網 路, 皆 可 以 使 用, 而 藍 芽 (Blue-tooth) 小 範 圍 點 對 點 傳 輸 是 無 法 達 成 的 以 及 解 決 不 同 環 境 下, 傳 送 速 度 防 火 牆 防 毒 等 因 素 造 成 的 異 常 現 象, 包 括 連 線 中 斷 資 料 遭 到 阻 擋 雙 方 不 同 步 等 問 題 24
圖 5-3 未 來 展 望 圖 5-4 研 究 檢 討 與 心 得 雖 高 一 開 始 就 接 觸 程 式 設 計, 但 所 學 習 到 的 只 是 程 式 邏 輯 的 部 分, 對 於 程 式 的 熟 練 度 也 相 當 不 足 而 專 題 使 用 的 技 術 Java Android 是 高 三 專 題 製 作 時 才 開 始 學 習, 網 路 (Internet) 在 高 一 高 二 有 接 觸, 就 程 式 設 計 網 際 網 路 實 作 而 言, 學 習 到 的 知 識 相 對 非 常 不 足, 對 於 專 題 進 度 限 制 有 非 常 大 的 影 響 期 末 專 題 報 告 後, 發 現 我 雖 採 用 與 其 他 組 不 同 的 技 術, 擁 有 相 當 的 發 展 潛 力, 但 過 度 著 重 在 技 術 層 面, 在 包 裝 整 個 報 告 部 分 有 相 地 的 進 步 空 間, 造 成 此 不 足 原 因 包 括 時 間 分 配 與 人 力 分 工, 並 非 順 暢 的 運 作, 人 力 與 時 間 上 的 浪 費, 造 成 在 發 表 前 急 忙 混 亂 的 局 面, 雖 專 題 順 利 的 完 成 展 示, 但 並 沒 有 充 分 展 現 專 題 內 容 葉 冠 麟 儘 管 製 作 專 題 的 過 程 很 辛 苦, 不 過 我 學 習 到 了 分 工 合 作 一 個 人 的 力 量 有 限, 可 是 結 合 組 員 的 力 量, 就 能 發 揮 出 最 大 的 成 果, 除 了 分 工 合 作 之 外, 我 還 學 習 到 了 關 於 本 科 的 相 關 知 識, 並 且 運 用 在 這 次 的 專 題 上 這 次 的 專 題, 真 是 讓 我 收 穫 良 多 蔡 瑞 盛 經 過 一 學 期 的 專 題 製 作, 學 習 到 許 多 課 本 以 外 的 相 關 知 識, 真 是 獲 益 良 多, 而 在 過 程 中 組 員 的 合 作 工 作 的 配 置 耐 力 的 持 續, 都 在 磨 練 每 個 人 的 毅 力, 即 使 過 程 中 出 了 一 些 差 錯, 但 是 結 果 依 舊 不 失 它 的 光 芒, 專 題 製 作 不 僅 是 知 識 的 提 升 還 是 訓 練 處 理 問 題 能 力 的 必 經 過 程! 葉 修 安 這 次 的 專 題 讓 我 體 會 到 美 編 的 很 重 要 性, 起 初, 我 們 對 於 自 己 的 遊 戲 的 介 面 較 不 重 視, 但 當 遊 戲 功 能 逐 漸 完 成, 我 們 赫 然 察 覺 單 調 的 開 始 介 面, 就 打 消 了 玩 遊 戲 的 念 頭 興 趣, 因 此, 美 編 開 始 著 手 再 趕 工, 讓 遊 戲 不 只 功 能 完 整, 也 使 它 內 容 也 更 加 地 豐 富 鄭 登 耀 25
參 考 文 獻 維 基 百 科 http://zh.wikipedia.org/wiki/wikipedia Google https://www.google.com/ 國 立 中 山 大 學 程 式 諮 詢 網 https://sites.google.com/a/mis.nsysu.edu.tw/cheng-shi-zi-xun-wang/java-jin-jie-p ian/wang-lu-pian/1-shen-me-shisocket 國 立 金 門 大 學 九 十 六 學 年 度 資 訊 工 程 學 系 專 題 Android 教 學 範 例 http://gogkmit.wikidot.com/start 26