2023年手机操作系统的游戏软件开发创新实验报告.pdf
《2023年手机操作系统的游戏软件开发创新实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年手机操作系统的游戏软件开发创新实验报告.pdf(66页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、项 目 编 号 诲 工 栽 业 衣 攵 笃 Shanghai University o f Engineering Science创 新 实 验 报 告 实 验 项 目 名 称 _ 基 于 Andro i d 手 机 操 作 系 统 的 游 戏 软 件 开 发 学 生 姓 名 _石 皓 程 樊 峰 辰 _学 生 学 号 _/_所 在 学 院 _电 子 电 气 工 程 学 院 _指 导 教 师 _施 一 茬-目 录 一、实 验 目 的 二、实 验 方 案 2.1总 体 设 计 思 想 2.2实 验 流 程(环 节)2.3 实 验 环 境 2.4 实 验 分 工 三、实 验 过 程 3.1A n
2、drio d 软 件 开 发 环 境 搭 建 3.2模 块 划 分 3.3游 戏 主 界 面 模 块 3.4游 戏 控 制 模 块 3.5 模 块 实 现 原 理 3.5 1游 戏 界 面 模 块 实 现 3.5 2 游 戏 控 制 模 块 实 现 3.6 游 戏 界 面 具 体 实 现 3.61蛇 身、食 物 和 墙 的 实 现 3.6 2 解 决 键 盘 事 件 3.6 3 T i leView类 的 设 计 3.64 Snak e View 类 的 设 计 3.6 5 Re f reshHandl e r 类 的 设 计 3.7 程 序 调 试 与 运 营 四、实 验 结 果 和 分 析
3、 五、参 考 文 献 六、附 录 一 代 码 清 单 七、附 录 二 环 境 搭 建 和 运 营一.实 验 目 的 贪 吃 蛇 游 戏 一 款 非 常 经 典 的 手 机 游 戏,由 于 它 比 较 简 朴 有 趣,无 论 老 少 都 比 较 适 合。贪 吃 蛇 的 设 计 对 每 一 个 J a v a 语 言 设 计 者 进 行 语 言 提 高 和 进 阶 都 是 一 个 很 好 的 锻 炼 机 会。贪 吃 蛇 游 戏 的 设 计 比 较 复 杂,它 涉 及 面 广、牵 涉 方 面 多,假 如 不 好 好 考 虑 和 设 计,将 难 以 成 功 开 发 出 这 个 游 戏。在 这 个 游
4、戏 的 设 计 中,牵 涉 到 图 形 界 面 的 显 示 与 更 新、数 据 的 收 集 与 更 新,并 且 在 这 个 游 戏 的 开 发 中,还 要 应 用 类 的 继 承 机 制 以 及 一 些 设 计 模 式。因 此,如 何 设 计 和 开 发 好 这 个 贪 吃 蛇 游 戏,对 于 提 高 J a v a 开 发 水 平 和 系 统 的 设 计 能 力 有 极 大 的 帮 助。在 设 计 开 发 过 程 中,需 要 解 决 好 各 个 类 之 间 的 继 承 关 系,还 要 解 决 各 个 类 相 应 的 封 装,并 且 还 要 协 调 好 各 个 模 块 之 间 的 逻 辑 依
5、赖 关 系 和 数 据 通 信 关 系。本 项 目 在 A ndroid平 台 下,使 用 J a v a语 言,A n d r oi d 开 发 技 术 开 发 一 款 界 面 和 谐,功 能 齐 全 的 贪 吃 蛇 游 戏。二.实 验 方 案 2.1 总 体 设 计 思 想 本 软 件 是 针 对 贪 吃 蛇 小 游 戏 的 JA V A程 序,运 用 上、下、左、右 方 向 键 来 改 变 蛇 的 运 动 方 向,长 按 某 个 方 向 键 后,蛇 的 运 动 速 度 会 加 快,在 随 机 的 地 方 产 生 食 物,吃 到 食 物 就 变 成 新 的 蛇 体,碰 到 壁 或 自 身
6、则 游 戏 结 束,否 则 正 常 运 营 游 戏,在 到 达 固 定 的 分 数 后,游 戏 速 度 会 加 快。2.2实 验 流 程 Ja v a 编 程 语 言 Android软 件 的 开 发 环 境 搭 建(Eel i p s e开 发 软 件、A n droi d SDK开 发 框 架、A n droid De v e lo p m e n t T o ol 开 发 环 境)An d r oid程 序 的 框 架 结 构 游 戏 软 件 的 开 发 2.3实 验 环 境 实 验 地 点 在 实 训 楼 1号 楼 计 算 中 心。计 算 中 心 具 有 较 好 的 实 验 设 备,拥
7、 有 较 高 配 置 的 P C机 30 0 台(I nte 1酷 睿 2 Q 8300四 核 解 决 器、2 G 内 存),都 可 以 接 入 校 园 网 和 Inter网,完 全 能 满 足 该 创 新 实 验 项 目 的 需 要。2.4实 验 分 工 李 琦:环 境 的 搭 建 和 游 戏 的 编 译 邵 或 韬:截 图 和 后 期 的 制 作 三.实 验 过 程 3.1 Andr i o d软 件 开 发 环 境 搭 建 采 用 e c 1 i pse开 发 工 具 兔 在 w i n d o w s 7 下 进 行,基 于 安 卓 2.2操 作 系 统。环 境 搭 建:1.J D K
8、 安 装 2.Eel i p se 安 装 3.A ndr oid SDK 安 装 4.A D T安 装 创 建 AVD软 件 总 体 设 计 工 程 中 涉 及 4 个 Activity,分 别 为 S n a k e(主 界 面)、G a me(游 戏 界 面)、H e l p(游 戏 说 明 界 面)、A u t horVi e w(作 者 信 息 界 面),通 过 不 同 Activity 之 间 的 转 换 实 现 不 同 界 面 之 间 的 切 换。Snake(Acti v i t y)继 承 了 Snak e View类,S na k eV i e w 类 继 承 了 T ile
9、Vi e w 类。T ileView 类 继 承 了 View 其 实 Snake的 工 程 蛮 简 朴 的,源 文 献 就 三 个:Snake,j ava Snake Vi e w.java T ile V i ew.j a vao Snake类 是 这 个 游 戏 的 入 口 点,TitleView类 进 行 游 戏 的 绘 画,S n ak e V ie w类 则 是 对 游 戏 控 制 操 作 的 解 决。C o ordi n a t e,Ref r e s hIIand1 e r 是 2 个 辅 助 类,也 是 SnakeV iew类 中 的 内 部 类。其 中,C o ord i
10、na t e是 一 个 点 的 坐 标(x,y),Refres h Han d l e r 将 R ef r eshH a ndler 对 象 绑 定 某 个 线 程 并 给 它 发 送 消 息。如 下 图:ViewActivity#onCreateO:void#onRestartO:void#onStartO:void#onResumeO:void#onPauseO:void#onStopO:void#onDestroyO:void#onSavelnstanceStateO:voidZXSnakemSnakeView:SnakeViewICICLE KEY:String=snake-vleW
11、#onSizeChangedO.void#onDrawO:void onKeyDownO-void invalidate。:voidTileView#mTileSize:int#mXTileCount:Int#mYTileCount:int-mXOffset:int-mYOffset:int-mTileGrid:intflO+resetTilesO:void+loadTileO:void+clearTHesO:void+setTileO:voidSnakeView-mRedrawHandler:RefreshHandler-initSnakeViewO-void-initNewGameQ:vo
12、id-coordArrayUstToArray0:into+saveStateO:void、-coordArrayToArrayListO:void+restoreStateO:void+setTextViewO:void+setModeO i void-addRandomAppleO void updateO void-updateWallsO:void-updateApplesO:void-updateSnakeQ:voidHandler dispatchMessageO:void+handleMessageO:void+hasMessageO:void+obtainMessageO:vo
13、id postO:void removeMessageO:void+sendMessageO:void+sendMessageDelayedO:void3RefreshHandler+sleepQ:void图 3.13.2模 块 划 分 从 面 向 对 象 程 序 设 计 的 角 度,本 项 目 总 体 地 可 以 分 为 游 戏 界 面 模 块、数 据 存 储 模 块 和 控 制 模 块。如 下 图 所 示:余 竹 此 游 相 图 M 2 游 尚.敢 体 糙 块 3.3 游 戏 主 界 面 模 块 游 戏 界 面 主 框 架 重 要 涉 及 游 戏 图 形 区 域 界 面、游 戏 的 开 始
14、 按 钮、暂 停 按 钮、游 戏 的 退 出 按 钮。游 戏 界 面 主 框 架 的 重 要 结 构 图 如 图 3.3 所 示。阅 Q Q 淤 护 土 里 而 3.4 游 戏 控 制 模 块 游 戏 控 制 模 块 重 要 通 过 手 机 键 盘 上 的 按 钮 来 控 制 游 戏 的 开 始、游 戏 的 暂 停、游 戏 的 退 出 这 三 个 功 能 以 及 控 制 游 戏 分 数 变 化。在 这 个 模 块 中,需 要 给 各 个 按 钮 添 加 响 应 事 件 代 码,来 对 上 述 的 功 能 加 以 进 一 步 的 实 现。游 戏 控 制 模 块 的 重 要 框 架 如 图 3.4
15、 所 示。图 3.4 游 戏 控 制 模 块 框 架 3.5 模 块 实 现 原 理 3 5 1。游 戏 界 面 模 块 实 现 1.实 现 游 戏 背 景 本 游 戏 采 用 A c tivi t y 作 为 游 戏 背 景 的 载 体,在 Android中 一 个 Ac t iv i t y就 相 称 于 wind o w s中 的 一 个 窗 口,Ac t ivit y 上 可 以 放 置 许 多 类 型 的 控 件。一 个 a c ti v it y 重 要 有 三 个 状 态:当 在 屏 幕 前 台 时(位 于 当 前 任 务 堆 栈 的 顶 部),它 是 活 跃 或 运 营 的 状
16、 态。它 就 是 相 应 用 户 操 作 的 act i vityo当 它 失 去 焦 点 但 仍 然 对 用 户 可 见 时,它 处 在 暂 停 状 态。即 是:在 它 之 上 有 此 外 一 个 a c t i v i t y。这 个 a c t i vity也 许 是 透 明 的,或 者 未 能 完 全 遮 蔽 全 屏,所 以 被 暂 停 的 ac t iv ity仍 对 用 户 可 见。暂 停 的 a c tiv ity仍 然 是 存 活 状 态(它 保 存 着 所 有 的 状 态 和 成 员 信 息 并 连 接 至 窗 口 管 理 器),但 当 系 统 处 在 极 低 内 存 的 情
17、 况 下,仍 然 可 以 杀 死 这 个 a c tiv ity。假 如 它 完 全 被 另 一 个 a c t ivity覆 盖 是,它 处 在 停 止 状 态。它 仍 然 保 存 所 有 的 状 态 和 成 员 信 息。然 而 它 不 在 为 用 户 可 见,所 以 它 的 窗 口 将 被 隐 藏,假 如 其 它 地 方 需 要 内 存,则 系 统 经 常 会 杀 死 这 个 activit y。假 如 一 个 a ctiv i t y 处 在 暂 停 或 停 止 状 态,系 统 可 以 通 过 规 定 它 结 束(调 用 它 的 f i n i s h()方 法)或 直 接 杀 死 它
18、的 进 程 来 将 它 驱 出 内 存。当 它 再 次 为 用 户 可见 的 时 候,它 只 能 完 全 重 新 启 动 并 恢 复 至 以 前 的 状 态。当 一 个 a c t iv i ty从 这 个 状 态 转 变 到 另 一 个 状 态 时,它 被 以 下 列 pro t ected方 法 所 告 知:void onCreate(Bu n die save d in s t a n ceS t at e),v o id o n Start()、voi d o nR e s ta r t()、void onR e s u m e()、vo i d o nPaus e()、v oid o
19、nS t o p()v o i d o nDe s t r o y()2.实 现 蛇 的 身 体 蛇 可 以 看 做 是 一 个 个 节 点 组 成 的,因 此 可 以 用 一 个 链 表 来 存 储 蛇 身 的 元 素,在 画 蛇 时 遍 历 这 个 链 表 讲 里 面 的 元 素 一 一 画 出,这 样 就 实 现 了 一 条 蛇.3.实 现 蛇 的 移 动 用 一 个 t i mer(定 期 器)来 不 断 地 刷 新 游 戏 画 面,每 刷 新 一 次 就 再 蛇 头 的 前 面(链 表 的 尾 部)增 长 一 个 新 元 素,同 时 把 蛇 尾 的 一 个 元 素 删 掉,这 样 从
20、 视 觉 上 看 起 来 就 实 现 了 蛇 的 移 动.4.实 现 蛇 吃 食 物。蛇 移 动 的 过 程 中 假 如 蛇 头 的 坐 标 与 食 物 出 现 的 坐 标 重 合 了,那 么 就 在 蛇 头 的 位 置 增 长 一 个 元 素 同 时 不 删 除 蛇 尾 的 最 后 一 个 元 素,这 样 蛇 每 迟 到 一 个 食 物。身 体 就 会 变 长 一 截.3.5.2 游 戏 控 制 模 块 实 现 1.实 现 操 作 蛇 的 移 动 方 向 在 A n d ro id系 统 中,手 机 上 的 每 个 按 钮 都 会 有 一 个 相 应 的 键 值 跟 它 相 应,所 在 可
21、以 给 相 应 的 按 钮 设 立 监 听 器 O n C lick L isten er,监 听 器 是 一 个 接 口,该 接 口 中 有 一 个 方 法 onClick(V iew v)。当 按 钮 被 点 击 的 时 候 系 统 会 自 动 调 用 该 监 听 器 的 o nCl i ck(Vi e w v)方 法。所 以 实 现 游 戏 控 制 的 具 体 代 码 将 被 写 到 该 方 法 中。由 于 本 游 戏 中 不 允 许 蛇 向 与 蛇 头 相 反 的 方 向 移 动,所 以 当 用 户 操 作 时 需 要 判 断 用 户 操 作 的 方 向 是 不 是 跟 规 则 冲 突
22、,若 冲 突 则 无 视 该 操 作,若 不 冲 突 则 响 应 当 操 作,所 以 需 要 用 一 个 变 量 来 记 录 蛇 头 的 当 前 方 向。2.实 现 游 戏 暂 停 在 Activi t y 的 生 命 周 期 中,有 一 个 onP a use()方 法.该 方 法 在 Ac t i v ity变 得 不 可 见 的 时 候 被 系 统 自 动 调 用.在 玩 游 戏 过 程 中,假 如 有 来 电 或 是 其 它 事 件 中 断,这 时 应 当 把 当 前 状 态 保 存。以 便 返 回 时,还 可 以 继 续 玩 游 戏。这 就 使 用 on Save I n st a
23、nceState实 现 保 存 当 前 状 态。3.实 现 游 戏 恢 复 Activity生 命 周 期 的 onResume()方 法.该 方 法 在 A c ti v ity从 不 可 见 的 状 态 下 变 得 可 见 时 被 系 统 自 动 调 用.在 用 户 接 完 电 话 或 者 在 暂 停 状 态 下 触 摸 屏 幕 后 可 以 在 该 生 命 周 期 方 法 中 对 游 戏 进 行 恢 复.4.实 现 游 戏 退 出 当 一 个 Activ i ty退 出 或 者 被 调 用 f i n i s h()方 法 后,系 统 会 调 用 其 生 命 周 期 方 法 onDest
24、r o y().当 用 户 退 出 游 戏 时,可 以 在 这 个 方 法 中 对 资 源 进 行 释 放.3.6游 戏 界 面 具 体 实 现 3.6.1 蛇 身、食 物 和 墙 的 实 现 前 面 已 经 提 过,蛇 身 的 数 据 用 一 个 链 表 来 存 储,具 体 我 使 用 ArrayList来 实 现。蛇 身 的 每 个 元 素、食 物 和 墙 都 是 一 个 坐 标 对 象,画 这 些 东 西 的 时 候 只 需 要 把 它 们 的 坐 标 传 给 画 的 方 法 就 行 了。这 里 需 要 引 进 一 个 坐 标 类 Co ord i n a t e,这 是 一 个 涉 及
25、 两 个 参 数,用 于 记 录 X 轴 和 Y 轴 简 朴 类,其 中 涉 及 一 个 比 较 方 法,该 方 法 用 于 判 断 蛇 头 于 食 物 或 者 墙 是 否 重 合.该 类 的 代 码 如 下:class Coord i n ate p ub 1 ic int x;publi c int y;publi c Coo rd ina te(int newx,int newY)x=n ewX;y=newY;)pu b lie b o ole a n equal s(Co ord ina t e oth e r)i f(x=other,x&y=o t h er.y)r e turn t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 手机 操作系统 游戏软件 开发 创新 实验 报告
限制150内