<4D6963726F736F667420576F7264202D20B5DA33D5C220D3CECFB7D6D0B5C4B6E0CFDFB3CC2E646F6378>



Similar documents
说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

深圳市新亚电子制程股份有限公司

中 国 软 科 学 年 第 期!!!

I

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

抗 日 战 争 研 究 年 第 期

2006年顺德区高中阶段学校招生录取分数线

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日


西 南 民 族 学 院 学 报 哲 学 社 会 科 学 版 第 卷 资 料 来 源 中 国 统 计 年 鉴 年 年 新 中 国 五 十 年 统 计 资 料 汇 编 中 国 人 口 统 计 年 鉴 年 数 据 资 料 来 源 中 国 统 计 年 鉴 中 国 统 计 出 版 社 年 版 资 料 来 源

公 开 刊 物 须 有 国 内 统 一 刊 (CN), 发 表 文 章 的 刊 物 需 要 在 国 家 新 闻 出 版 广 电 总 局 ( 办 事 服 务 便 民 查 询 新 闻 出 版 机 构 查 询 ) 上 能 够 查 到 刊 凡 在 有 中 国 标 准 书 公 开

珠江钢琴股东大会

第2章 数据类型、常量与变量

证券代码: 证券简称:长城电脑 公告编号:

 编号:


<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

21 业 余 制 -- 高 起 专 (12 级 ) 75 元 / 学 分 网 络 学 院 学 生 沪 教 委 财 (2005)49 号 江 西 化 校 工 科 22 业 余 制 -- 高 起 专 (12 级 ) 70 元 / 学 分 网 络 学 院 学 生 沪 教 委 财 (2005)49 号 吉

Microsoft Word - 文件汇编.doc

名 称 生 命 科 学 学 院 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院

国债回购交易业务指引

一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

二 工 资 制 度 与 教 师 道 德 风 险 行 为

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

修改版-操作手册.doc

《C语言基础入门》课程教学大纲

小 学 语 文 是 小 学 语 文 是 小 学 语 文 是 小 学 语 文

现 场 会 议 时 间 为 :2016 年 5 月 19 日 网 络 投 票 时 间 为 :2016 年 5 月 18 日 年 5 月 19 日 其 中 通 过 深 圳 证 券 交 易 所 交 易 系 统 进 行 网 络 投 票 的 时 间 为 2016 年 5 月 19 日 9:30-

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

上海证券交易所会议纪要

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

中 日 信 息 化 的 比 较 与 合 作 一 中 日 信 息 化 的 规 模 比 较

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个


课程类 别

徐天宏:《基因天堂》.doc

<4D F736F F D20CAAEC8FDCEE5B9E6BBAED7EED6D5B8E5352E33312E646F63>

新, 各 地 各 部 门 ( 单 位 ) 各 文 化 事 业 单 位 要 高 度 重 视, 切 实 加 强 领 导, 精 心 组 织 实 施 要 根 据 事 业 单 位 岗 位 设 置 管 理 的 规 定 和 要 求, 在 深 入 调 查 研 究 广 泛 听 取 意 见 的 基 础 上, 研 究 提

Microsoft Word - 第7章 图表反转形态.doc

学 年 第 二 学 期 集 中 考 试 安 排 (18 周 ) 考 试 日 期 :6 月 27 日 星 期 一 8:10-9:50 第 二 公 共 教 学 楼 A 区 A 高 等 数 学 ( 理 二 2) 复 材 材 料 科 学 与 工 程

简 报 要 点 ESI 共 有 22 个 学 科 门 类, 江 苏 高 校 目 前 只 有 16 个 学 科 门 类 进 入 了 世 界 1%, 分 别 是 一 般 社 会 科 学 临 床 医 学 农 业 科 学 分 子 生 物 学 和 遗 传 学 动 植 物 科 学 化 学 地 球 科 学 工 程

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决


教师上报成绩流程图

第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>


正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

登录、注册功能的测试用例设计.doc

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

中信证券股份有限公司

<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6>

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

002 电 子 科 学 与 工 程 学 院 拟 招 生 150 人 联 系 人 : 周 老 师, 电 话 物 理 电 子 学 电 路 分 析 电 磁 场 理 论 01 电 磁 物 理 与 微 波 电 子 学 02 光 子 学 与 光 电 技 术 03 微 纳

思 想 政 治 理 论 经 核 查 无 误 思 想 政 治 理 论 经 核 查 无 误 思 想 政 治 理 论 经 核 查 无 误 思 想

第 一 批 本 科 文 科 代 码 学 校 投 档 线 校 线 差 最 低 排 位 投 档 线 校 线 差 最 低 排 位 投 档 线 校 线 差 最 低 排 位 控 制 分 数 线 北 京 大 学

untitled

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 一 人 员 经 费 一 般 财 力 人 员 支 出 成 品

2.5 选 举 陈 晓 非 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.6 选 举 卢 婕 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.7 选 举 张 文 君 先 生 为 第 六 届 董 事 会 独 立 董 事 候 选 人 的 议 案

ETF、分级基金规模、份额变化统计

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2




江 苏 瑞 峰 建 设 集 团 有 限 公 有 限 公 江 苏 鲁 工 建 设 工 程 有 限 公 江 苏 溧 鸿 建 设 有 限 公 江 苏 明 创 科 技 园 发 展 有 限 公 公 公 有 限 公 江 苏 茂 盛 建 设 有 限 公 江 苏 鼎 洪 建 工 有 限 公 富 强 机 电 安 装

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

金融全渠道银行彩页中文版0702

内 容 二 : 建 立 并 完 善 了 三 点 的 网 络 教 学 管 理 体 系 内 容 三 : 注 重 培 养 学 生 的 听 说 能 力 14

Microsoft Word - 第3章.doc

年 第 期 % %! & % % % % % % &

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

附件1:

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

<4D F736F F D20D0A3B7A2A1B A1B BAC5B9D8D3DAD7E9D6AFBFAAD5B9C8ABD0A3BDCCD6B0B9A4B8DACEBBC6B8D3C3B1E4B6AFB9A4D7F7B5C4CDA8D6AA2E646F63>

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)

Microsoft Word - 工业品封面.doc

!!



用节点法和网孔法进行电路分析

2016年德州市机构编制委员会

目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化? 五 如 何 向 教 师 发 送 通 知? 六

生产支援功能 使用说明书(IP-110 篇)

抗 战 时 期 国 立 中 学 的 创 办 及 其 意 义!!

境 外 上 市 外 资 股 股 东 持 有 股 份 总 数 (H 股 ) 489,157,907 3 出 席 会 议 的 股 东 所 持 有 表 决 权 股 份 数 占 公 司 有 表 决 权 股 份 总 数 的 其 中 :A 股 股 东 持 股 占 股 份 总 数 的

第1篇 道路桥梁工程技术核心专业课程标准及学习绩效考评体系


光明乳业股份有限公司

Transcription:

Android 游 戏 案 例 开 发 与 关 键 技 术 作 者 : 华 清 远 见 第 3 章 游 戏 中 的 多 线 程 本 章 简 介 在 游 戏 场 景 中, 我 们 可 以 看 到 各 个 游 戏 元 素 都 在 发 生 一 些 变 化, 比 如 主 角 的 移 动 背 景 的 变 化 道 具 的 运 动 等, 这 些 变 化 有 些 相 互 影 响, 有 些 则 不 然 在 捕 鱼 游 戏 中, 我 们 发 射 一 枚 炮 弹, 这 枚 炮 弹 会 沿 着 发 射 轨 迹 移 动, 鱼 群 也 会 以 不 同 的 方 向 自 由 地 移 动, 这 些 操 作 都 是 通 过 多 线 程 来 实 现 的 多 线 程 游 戏 模 型 的 算 法 思 想 是 : 将 各 游 戏 元 素 的 动 作 用 独 立 的 线 程 进 行 处 理, 特 定 功 能 模 块 用 指 定 的 线 程 进 行 处 理 我 们 在 程 序 中 实 现 的 都 是 模 拟 的 多 线 程, 用 以 处 理 不 同 的 事 物, 但 实 际 上 在 计 算 机 处 理 的 物 理 层, 仍 然 以 单 线 程 的 模 式 工 作, 或 者 同 时 运 行 计 算 机 内 核 数 量 的 线 程 Java 当 中 已 经 封 装 好 了 多 线 程 的 机 制, 即 Android 当 中 多 线 程 不 是 依 赖 于 虚 拟 机 的, 而 是 依 赖 于 底 层 Linux 的

3.1 多 线 程 的 使 用 3.1.1 游 戏 逻 辑 的 实 现 在 Android 游 戏 开 发 中, 逻 辑 部 分 通 常 由 线 程 实 现, 比 如 小 鱼 的 游 动 小 鱼 的 状 态 处 理 子 弹 的 路 径 碰 撞 检 测 等 这 里 我 们 以 小 鱼 游 动 为 例, 介 绍 游 戏 中 的 线 程 的 应 用 : 我 们 让 线 程 以 一 个 周 期 的 方 式 循 环 变 化 鱼 在 屏 幕 上 的 坐 标, 这 样, 每 次 绘 制 周 期 中, 绘 制 的 鱼 就 在 不 断 变 换, 看 起 来 就 像 是 鱼 儿 在 游 动 一 样 在 程 序 中 使 用 run() 方 法 来 控 制 每 条 鱼 的 坐 标, 代 码 清 单 3-1 为 FishRunThread.java 的 实 现 * 控 制 鱼 儿 游 动 的 线 程 * @author Xiloerfan * public class FishRunThread extends Thread{ private Fish fish; private boolean isrun; * 屏 幕 宽 度 private int screenwidth; public FishRunThread(Fish fish,int screewidth){ this.fish = fish; this.screenwidth = screewidth; public void stopfishrun(){ isrun = false; @Override public void run() { isrun = true; // TODO Auto-generated method stub int fishx = 0; while(isrun){ 3.1.2 创 建 多 个 线 程 * 累 加 X, 让 鱼 一 直 向 右 移 动 代 码 清 单 3-1 控 制 鱼 儿 游 动 的 线 程 fish.getpicmatrix().settranslate(fishx,0); fishx++; if(fishx>screenwidth){ * 减 去 宽 度 是 为 了 让 鱼 的 起 始 位 置 位 于 屏 幕 左 边 没 有 出 现 的 位 置 fishx = 0-fish.getCurrentPic().getWidth(); try { Thread.sleep(50); catch (Exception e) { // TODO: handle exception 掌 握 了 线 程 在 游 戏 中 实 现 功 能 的 方 法 后, 我 们 就 可 以 创 建 多 个 线 程 来 完 成 不 同 的 任 务 以 小 鱼 快 跑 2

为 例, 我 们 可 以 开 启 不 同 的 线 程 来 控 制 鱼 群 的 移 动 子 弹 的 发 射 等 3.2 多 线 程 的 注 意 事 项 3.2.1 同 步 问 题 在 以 上 代 码 中, 我 们 用 一 个 while 循 环 对 鱼 儿 的 位 置 进 行 处 理, 以 Boolean 型 变 量 isrun 来 作 为 判 断 的 条 件 isrun 为 true 代 表 游 戏 正 在 进 行, 当 游 戏 结 束 时 在 stopfishrun() 中 将 isrun 设 为 false, 退 出 循 环 这 样 做 对 一 个 单 独 的 线 程 没 有 影 响, 但 是 在 整 个 游 戏 当 中 若 存 在 两 个 或 两 个 以 上 的 线 程, 每 个 线 程 都 有 各 自 的 isrun 属 性, 当 其 中 一 个 线 程 退 出 时, 游 戏 就 应 该 结 束, 游 戏 中 所 有 的 线 程 都 应 该 结 束 但 是 这 时 只 有 引 起 游 戏 结 束 的 线 程 的 isrun 属 性 被 设 置 为 false, 而 其 他 线 程 仍 在 运 行, 这 样 将 会 导 致 游 戏 不 能 完 全 退 出 和 一 些 其 他 的 问 题 为 了 解 决 以 上 问 题, 我 们 用 一 个 Boolean 值 变 量 gameinfo 来 表 示 整 个 系 统 的 运 行 状 态, 并 将 其 存 储 于 一 个 公 开 类 GamingInfo.java 中, 使 用 get 和 set 方 法 来 获 取 和 修 改 它 的 值 在 程 序 运 行 时, 每 一 个 线 程 只 需 要 调 用 这 一 个 属 性, 就 可 以 获 知 游 戏 是 否 结 束 我 们 将 游 戏 中 其 他 的 公 共 属 性 都 存 储 于 GamingInfo.java 中, 用 相 应 的 get 和 set 方 法 来 使 用 代 码 清 单 3-2 为 GamingInfo.java 的 实 现, 代 码 清 单 3-3 为 FishRunTread.java 中 改 进 之 后 的 run() 方 法 // 游 戏 进 行 中 一 些 需 要 共 用 的 变 量 public class GamingInfo { private int screenwidth; private int screenheight; private static GamingInfo gameinfo; private boolean isgaming; private boolean ispause; 代 码 清 单 3-2 GamingInfo.java 的 实 现 // 单 例 模 式 需 要 // 是 否 处 于 游 戏 状 态 // 是 否 处 于 暂 停 状 态 private MainSurface surface; // 主 屏 幕 private Activity activity; private ArrayList<Fish> fish = new ArrayList<Fish>(); // 所 有 的 鱼 private ShoalManager shoalmanager; private SoundManager soundmanager; private float cannonlayoutx; private float cannonlayouty; private int score = 100; // 鱼 群 管 理 器 // 音 效 管 理 器 // 大 炮 旋 转 X 坐 标 // 大 炮 旋 转 Y 坐 标 // 当 前 的 分 数 值 public int getscore() { return score; public void setscore(int score) { this.score = score; * 清 除 GamingInfo 实 例 public static void cleargameinfo() { gameinfo = null; private GamingInfo() { public static GamingInfo getgaminginfo() { if (gameinfo == null) { 3

gameinfo = new GamingInfo(); return gameinfo; public boolean isgaming() { return isgaming; public void setgaming(boolean isgaming) { this.isgaming = isgaming; public ArrayList<Fish> getfish() { return fish; public void setfish(arraylist<fish> fish) { this.fish = fish; public MainSurface getsurface() { return surface; public void setsurface(mainsurface surface) { this.surface = surface; public ShoalManager getshoalmanager() { return shoalmanager; public void setshoalmanager(shoalmanager shoalmanager) { this.shoalmanager = shoalmanager; public int getscreenwidth() { return screenwidth; public void setscreenwidth(int screenwidth) { this.screenwidth = screenwidth; public int getscreenheight() { return screenheight; public void setscreenheight(int screenheight) { this.screenheight = screenheight; public Activity getactivity() { return activity; public void setactivity(activity activity) { this.activity = activity; public SoundManager getsoundmanager() { return soundmanager; public void setsoundmanager(soundmanager soundmanager) { 4

this.soundmanager = soundmanager; public float getcannonlayoutx() { return cannonlayoutx; public void setcannonlayoutx(float cannonlayoutx) { this.cannonlayoutx = cannonlayoutx; public float getcannonlayouty() { return cannonlayouty; public void setcannonlayouty(float cannonlayouty) { this.cannonlayouty = cannonlayouty; public boolean ispause() { return ispause; public void setpause(boolean ispause) { this.ispause = ispause; public void run() { 代 码 清 单 3-3 线 程 中 的 run() 方 法 int[][] path = PathManager.getDefaultPath(fish); while (GamingInfo.getGamingInfo().isGaming()) { while(isrun &&!GamingInfo.getGamingInfo().isPause()){ for (int[] pathmode : path) { if(fishisout!isrun){ // 如 果 路 径 为 旋 转 模 式 if (pathmode[0] == PathManager.PATH_MODE_ROTATE) { * 这 里 做 了 一 个 处 理, 就 是 分 析 鱼 头 朝 向 和 所 在 位 置 让 鱼 儿 进 行 不 同 的 旋 转 路 线 // 如 果 鱼 儿 处 于 第 1 或 第 2 象 限 if (fish.getfish_x() <= GamingInfo.getGamingInfo().getScreenWidth() / 2 && fish.getfish_y() <= GamingInfo.getGamingInfo().getScreenHeight() / 2 fish.getfish_x() > GamingInfo.getGamingInfo().getScreenWidth() / 2 && fish.getfish_y() <= GamingInfo.getGamingInfo().getScreenHeight() / 2) { // 如 果 鱼 头 是 朝 向 x 的 负 坐 标 方 向 if (fish.getcurrentrotate() >= 90 && fish.getcurrentrotate() <= 270 fish.getcurrentrotate() <= -90 && fish.getcurrentrotate() >= -270) { rotateleftfish(pathmode[1]); else { rotaterightfish(pathmode[1]); // 如 果 鱼 儿 处 于 第 3 或 第 4 象 限 else { // 如 果 鱼 头 是 朝 向 x 的 负 坐 标 方 向 if (fish.getcurrentrotate() >= 90 && fish.getcurrentrotate() <= 270 fish.getcurrentrotate() <= -90 && fish.getcurrentrotate() >= -270) { rotaterightfish(pathmode[1]); else { 5

// 如 果 路 径 为 直 行 模 式 rotateleftfish(pathmode[1]); else { gostraight(pathmode[1]); if(!fishisout){ // 重 新 获 取 新 路 径 path = PathManager.getDefaultPath(fish); else{ while(isrun && GamingInfo.getGamingInfo().isGaming()){ // 如 果 超 出 屏 幕, 走 一 个 直 线 gostraight(100); 专 业 始 于 专 注 卓 识 源 于 远 见 3.2.2 数 据 安 全 问 题 线 程 锁 游 戏 中 经 常 会 使 用 多 线 程 来 访 问 同 一 个 数 据, 这 样 可 能 会 带 来 数 据 的 不 安 全 问 题, 比 如 两 个 线 程 T1 和 T2 都 访 问 同 一 数 据 D, 当 T1 开 始 改 变 D 的 值 时, 理 论 上 D 应 该 是 新 的 值, 这 时 若 T2 恰 好 也 要 访 问 D, 而 D 并 没 有 被 完 全 改 变, 那 么 T2 可 能 会 得 到 D 原 来 的 值, 即 得 到 错 误 的 信 息 为 了 避 免 这 种 情 况 的 发 生, 我 们 使 用 线 程 锁 来 解 决, 即 当 D 的 值 正 在 改 变 时, 给 D 加 一 个 线 程 锁, 使 任 何 其 他 线 程 都 无 法 访 问, 直 到 完 成 了 D 值 的 改 变 我 们 在 更 新 图 层 的 时 候 用 到 了 线 程 锁, 代 码 清 单 3-4 显 示 了 更 新 图 层 的 过 程 代 码 清 单 3-4 更 新 图 层 * 更 新 图 层, 这 里 分 为 三 种 操 作 方 式, 分 别 是 更 新 临 时 图 层 中 的 内 容 到 绘 制 图 层 中, 删 除 绘 制 图 层 中 的 元 素, 添 加 绘 制 图 层 中 的 元 素 * 这 里 加 了 个 线 程 锁, 保 证 多 线 程 下 操 作 图 层 的 安 全 性 * @param mode 绘 制 图 层 的 操 作 类 型, 对 应 当 前 类 的 CHANGE_MODE 常 量 * @param layerid 操 作 的 图 层 ID * @param draw 操 作 的 图 层 元 素 private synchronized void updatepiclayer(int mode,int layerid,drawable draw){ switch(mode){ // 将 临 时 图 层 中 的 内 容 更 新 至 绘 制 图 层 中 case CHANGE_MODE_UPDATE: // 如 果 有 修 改 if(changelayer){ // 向 图 层 添 加 新 的 元 素 for(integer id:addpiclayer.keyset()){ for(drawable d:addpiclayer.get(id)){ // 如 果 要 添 加 的 元 素 所 处 图 层 不 存 在, 则 创 建 这 个 图 层, 并 更 新 图 层 ID 数 组 if(this.piclayer.get(id)==null){ this.piclayer.put(id, new ArrayList<Drawable>()); updatelayerids(id); this.piclayer.get(id).add(d); addpiclayer.clear(); // 删 除 图 层 中 的 元 素 for(integer id:removepiclayer.keyset()){ for(drawable d:removepiclayer.get(id)){ try { this.piclayer.get(id).remove(d); catch (Exception e) { System.out.println(" 图 层 内 容 不 存 在 :"+id); 6

removepiclayer.clear(); changelayer = false; * 无 论 是 向 绘 图 图 层 中 添 加 还 是 删 除 元 素, 都 不 是 直 接 操 作 绘 制 图 层, 都 是 存 放 在 对 应 的 临 时 图 层 中, 等 待 绘 制 方 法 绘 制 周 期 中 将 变 化 的 内 容 更 新 到 绘 制 图 层 中 * 保 证 多 线 程 操 作 情 况 下 的 安 全 性 // 添 加 一 个 元 素 case CHANGE_MODE_ADD: ArrayList<Drawable> al = addpiclayer.get(layerid); if(al==null){ al = new ArrayList<Drawable>(); addpiclayer.put(layerid, al); al.add(draw); changelayer = true; // 删 除 一 个 元 素 case CHANGE_MODE_REMOVE: ArrayList<Drawable> al1 = removepiclayer.get(layerid); if(al1==null){ al1 = new ArrayList<Drawable>(); removepiclayer.put(layerid, al1); al1.add(draw); changelayer = true; 既 然 线 程 这 么 方 便, 那 可 以 开 无 数 个 线 程 吗? 孩 子 啊, 其 实 不 可 以 每 个 线 程 都 会 占 用 程 序 的 资 源, 使 程 序 花 费 一 定 的 时 间 处 理 资 源 如 果 线 程 过 多, 会 降 低 程 序 的 运 行 速 度, 游 戏 就 会 很 卡, 很 可 能 没 办 法 玩 下 去 3.3 本 章 小 结 本 章 主 要 介 绍 了 在 游 戏 中 使 用 线 程 处 理 逻 辑 和 使 用 多 线 程 的 方 法, 并 提 到 了 使 用 多 线 程 可 能 会 遇 到 的 问 题 7

及 常 用 解 决 方 案 专 业 始 于 专 注 卓 识 源 于 远 见 联 系 方 式 集 团 官 网 :www.hqyj.com 嵌 入 式 学 院 :www.embedu.org 移 动 互 联 网 学 院 :www.3g-edu.org 企 业 学 院 :www.farsight.com.cn 物 联 网 学 院 :www.topsight.cn 研 发 中 心 :dev.hqyj.com 集 团 总 部 地 址 : 北 京 市 海 淀 区 西 三 旗 悦 秀 路 北 京 明 园 大 学 校 内 华 清 远 见 教 育 集 团 北 京 地 址 : 北 京 市 海 淀 区 西 三 旗 悦 秀 路 北 京 明 园 大 学 校 区, 电 话 :010-82600386/5 上 海 地 址 : 上 海 市 徐 汇 区 漕 溪 路 250 号 银 海 大 厦 11 层 B 区, 电 话 :021-54485127 深 圳 地 址 : 深 圳 市 龙 华 新 区 人 民 北 路 美 丽 AAA 大 厦 15 层, 电 话 :0755-25590506 成 都 地 址 : 成 都 市 武 侯 区 科 华 北 路 99 号 科 华 大 厦 6 层, 电 话 :028-85405115 南 京 地 址 : 南 京 市 白 下 区 汉 中 路 185 号 鸿 运 大 厦 10 层, 电 话 :025-86551900 武 汉 地 址 : 武 汉 市 工 程 大 学 卓 刀 泉 校 区 科 技 孵 化 器 大 楼 8 层, 电 话 :027-87804688 西 安 地 址 : 西 安 市 高 新 区 高 新 一 路 12 号 创 业 大 厦 D3 楼 5 层, 电 话 :029-68785218 广 州 地 址 : 广 州 市 天 河 区 中 山 大 道 268 号 天 河 广 场 3 层, 电 话 :020-28916067 8