unity课程设计报告(刘卉和沈玉婷)_第1页
unity课程设计报告(刘卉和沈玉婷)_第2页
unity课程设计报告(刘卉和沈玉婷)_第3页
unity课程设计报告(刘卉和沈玉婷)_第4页
unity课程设计报告(刘卉和沈玉婷)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江南大学数字媒体技术专业2012 2013 年度第 1 学期 1 课程 课程 Unity3D 课程设计课程设计 题目 题目 小球吃宝石小球吃宝石 班 级 数媒 0902 学 号 姓 名 刘卉 沈玉婷 日 期 2012 12 江南大学数字媒体技术专业2012 2013 年度第 1 学期 2 一 摘要 网络游戏是一种新型的 IT 产业 我们研究主要内容是网络软 件设计方法 网络游戏 英文名称为 Online Game 又称 在线游 戏 简称 网游 指以互联网为传输媒介 以游戏运营商服务器 和用户计算机为处理终端 以游戏客户端软件为信息交互窗口的旨 在实现娱乐 休闲 交流和取得虚拟成就的具有可持续性的个体性 多人在线游戏 本报告主要讲述了这个小游戏的设计思路及初步使用 Unity3D 软件的感受和总结 设计过程中 首先建立自己想要的模型 然后 在此基础上进行需求迭代 详细设计时不断地修正和完善 经过测 试阶段反复调试和验证 最终形成达到设计要求的小游戏 基于视频教程 平衡球 的基础 构建了一个益智游戏风格的 游戏 并有主角 小球 与关卡 一关 游戏逻辑 触碰宝石 游戏环境界面 环形轨道 等设计 使得玩家可以在场景轨道中进 行小球吃宝石的冒险游戏 本游戏的控制很简单 及用键盘的上下左右 或 WSAD 四个 箭头控制小球的上下左右四个方向 用户根据自己的战略方式选择 小球能吃到宝石的最佳捷径 从而一步步吃掉所有宝石 分工 刘卉 场景的构建和小球 宝石等道具的设计 沈玉 婷 游戏内容的构思设计和程序代码的编写 关键词 网络游戏 小球吃宝石 浏览器形式 江南大学数字媒体技术专业2012 2013 年度第 1 学期 3 二 概述 网络游戏程序设计 这一课程以大作业形式进行考核 能更 好地锻炼学生综合运用本课程所授知识的能力 大作业主要内容为 设计完成面向某一主题内容的游戏演示程序 自选游戏主题 并根据所选定的主题内容设计一个典型的游戏 场景及玩家逻辑 其中包含主角与关卡 游戏逻辑 游戏环境界面 与交互过程等的设计 开发完成与设计相符的游戏 Demo 要求使用 Unity3D 游戏开发软件实现上述游戏 Demo 三 具体要求 1 每人单独完成 特殊可由 2 人合作完成 2 游戏主题自拟 3 根据所设游戏主题 场景及玩家逻辑 实现完成相应的游 戏 Demo 并撰写设计开发报告 四 网络游戏介绍 网络游戏是一种新型的 IT 产业 我们研究主要内容是网络软件设 计方法 网络游戏 英文名称为 Online Game 又称 在线游戏 简称 网游 指以互联网为传输媒介 以游戏运营商服务器和用户 计算机为处理终端 以游戏客户端软件为信息交互窗口的旨在实现 娱乐 休闲 交流和取得虚拟成就的具有可持续性的个体性多人在 线游戏 网络游戏目前的使用形式可以分为以下二种 1 浏览器形式 基于浏览器的游戏 也就是我们通常说到的网页游戏 又称为 WEB 江南大学数字媒体技术专业2012 2013 年度第 1 学期 4 GAME 它不用下载客户端 任何地方任何时间任何一台能上网的电 脑快乐的游戏 尤其适合上班族 其类型及题材也非常丰富 2 客户端形式 这一种类型是由公司所架设的服务器来提供游戏 而玩家们则是由 公司所提供的客户端来连上公司服务器以进行游戏 而现在称之为 网络游戏的大都属于此类型 此类游戏的特征是大多数玩家都会有 一个专属于自己的角色 虚拟身份 而一切角色资料以及游戏资讯 均记录在服务端 就目前网络游戏主要的游戏模式而言 主要有以下几种 动作游戏 冒险游戏 益智游戏 卡片游戏 战略游戏等等 本课程设计所设 计的游戏类型是小球吃宝石游戏 属于益智游戏的一种 五 设计主题 基于视频教程 平衡球 的基础 构建了一个益智游戏风格的游戏 并有主角 小球 与关卡 一关 游戏逻辑 触碰宝石 游戏环 境界面 环形轨道 等设计 使得玩家可以在场景轨道中进行小球 吃宝石的冒险游戏 六 设计思路 本游戏以几个环环相扣的轨道作为小球运动的轨迹 在轨道上分别 设计一些红宝石 通过电脑上的上下左右箭头 或 WSAD 分别控制 小球的运动方向 上下左右 稍有偏差小球就会离开平面 游戏结 束 相反 如果小球运动位置没有偏离所设计轨道平面而且碰触到 红宝石 即算初步成功 当小球全部吃掉所设计的红宝石 游戏胜 江南大学数字媒体技术专业2012 2013 年度第 1 学期 5 利 本报告主要讲述了这个小游戏的设计思路及初步使用 Unity3D 软件 的感受和总结 设计过程中 首先建立自己想要的模型 然后在此 基础上进行需求迭代 详细设计时不断地修正和完善 经过测试阶 段反复调试和验证 最终形成达到设计要求的小游戏 分工 刘卉 场景的构建和小球 宝石等道具的设计 沈玉婷 游戏内容的构思设计和程序代码的编写 七 具体构建步骤 1 天空盒子添加 2 用 BSP 笔刷建造场景的基本结构 3 为场景贴图 贴图时 根据道具的风格 选择泥土或砖块 的 BSP 贴图 每次贴图选择一个平面的一个面 复制粘贴直至完全 贴完 江南大学数字媒体技术专业2012 2013 年度第 1 学期 6 4 放置静态模型和道具 本场景设定为环形轨道上小球的运 动 选用小球和宝石做道具 5 场景灯光 添加相应的点光源 查看效果 江南大学数字媒体技术专业2012 2013 年度第 1 学期 7 6 摄像机 调整摄像机到合适的位置 八 程序脚本 1 游戏结束触发器程序 GameoverTrigger using UnityEngine using System Collections public class GameoverTrigger MonoBehaviour void OnTriggerEnter MarbleGameManager SP SetGameOver 2 小球的控制程序 MarbleControl using UnityEngine using System Collections public class MarbleControl MonoBehaviour public float movementSpeed 6 0f void Update Vector3 movement Input GetAxis Horizontal Vector3 left movementSpeed Input GetAxis Vertical Vector3 forward movementSpeed rigidbody AddForce movement ForceMode Force void OnTriggerEnter Collider other if other tag Pickup 江南大学数字媒体技术专业2012 2013 年度第 1 学期 8 MarbleGameManager SP FoundGem Destroy other gameObject else Other collider See other tag and other name 3 小球游戏运作情形设计程序 MarbleGameManager using UnityEngine using System Collections public enum MarbleGameState playing won lost public class MarbleGameManager MonoBehaviour public static MarbleGameManager SP private int totalGems private int foundGems private MarbleGameState gameState void Awake SP this foundGems 0 gameState MarbleGameState playing totalGems GameObject FindGameObjectsWithTag Pickup Length Time timeScale 1 0f void OnGUI GUILayout Label Found gems foundGems totalGems if gameState MarbleGameState lost GUILayout Label You Lost if GUILayout Button Try again Application LoadLevel Application loadedLevel 江南大学数字媒体技术专业2012 2013 年度第 1 学期 9 else if gameState MarbleGameState won GUILayout Label You won if GUILayout Button Play again Application LoadLevel Application loadedLevel public void FoundGem foundGems if foundGems totalGems WonGame public void WonGame Time timeScale 0 0f Pause game gameState MarbleGameState won public void SetGameOver Time timeScale 0 0f Pause game gameState MarbleGameState lost 4 跟踪小球球的摄像机设置 MarbleCamera using UnityEngine using System Collections public class MarbleCamera MonoBehaviour public Transform target public float relativeHeigth 10 0f public float zDistance 5 0f public float dampSpeed 2 江南大学数字媒体技术专业2012 2013 年度第 1 学期 10 void Update Vector3 newPos target position new Vector3 0 relativeHeigth zDistance transform position Vector3 Lerp transform position newPos Time deltaTime dampSpeed 八 关于服务器及网络模块的设计及实现 网络模块的设计主要为了实现网络版的服务端与客户端之间的 连接以及它们之间数据的传送 图展示了网络模块的结构图 网络 模块主要由客户机服务器两部分组成 网络模块 客 户 机 服 务 器 在使用 TCP 协议时 一般服务端进程先使用 socket 调用得到一 个描述符 然后使用 bind 调用将一个名字 与 socket 描述符连接起 来 对于 Internet 域就是将 Internet 地址联编到 socket 之后 服务 端使用 listen 调用指出等待服务请 求队列的长度 然后就可以使用 accept 调用等待客户端发起连接 一般是阻塞等待连接 一旦有客 户端发出连接 accept 返回客户的地址信息 并返回 一个新的 socket 描述符 该描述符与原先的 socket 有相同的特性 这时服务 江南大学数字媒体技术专业2012 2013 年度第 1 学期 11 端就可以使用这个新的 socket 进行读写操作了 一般服务端可能在 accept 返回后创建一个新的进程进行与客户的通信 父进程则再到 accept 调用处等待另一个连接 客户端进程一般先使用 socket 调用 得到一个 socket 描述符 然后使用 connect 向指定的服务器上的指 定端口发起连接 一旦连接成功返回 就说明已经建立了与服务器 的连接 这时就可以通过 socket 描述符进行读写操作了 一旦创建 Socket 在客户端 你将可以通过 Connect 方法连接到指 定的服务器 你可以在 Connect 方法前 Bind 端口 就是以指定的端 口发起连接 如 果不事先 Bind 端口号的话 系统会默认在 1024 到 5000 随机绑定一个端口号 并通过 Send 方法向远程服务器发 送数据 而后可以通过 Receive 从服务端接收数据 而在服务器端 你需要使用 Bind 方法绑定所指定的接口使 Socket 与一个本地终结 点相联 并通过 Listen 方法侦 听该接口上的请求 当侦听到用户端 的连接时 调用 Accept 完成连接的操作 创建新的 Socket 以处理传 入的连接请求 使用完 Socket 后 使用 Close 方法关闭 Socket 下图展示了网络模块流程图 通过启动服务器与客户机 完成了它 们之间的连接以及数据交换 江南大学数字媒体技术专业2012 2013 年度第 1 学期 12 服务器方客户方 Socket 建立套接字 Bind 与本地地址相连 Listen 监听客户端 Accept 接收连接 建立连接 Recv Send 读 写数据 关闭套接字接收 发送 Close 关闭套接字实例 Socket 建立套接字 Connect 连接服务器 Recv Send 读 写数据 关闭套接字 九 游戏规则 游戏规则模块也是本文的一个重点部分 需要实现小球吃宝石游戏 的基本规则 因此 首先要解决的问题是小球的运动方向 根据轨 道的方向制定小球的运动路线 然后要解决的问题是小球与红宝石 的接触过程 如果能保证小球不离开轨道而且又能吃到宝石 则小 球则达到初步成功 如果能吃到所有宝石 则游戏胜利 相反 如 果小球不慎离开轨道 则宣布游戏失败 江南大学数字媒体技术专业2012 2013 年度第 1 学期 13 十 用户控制 本游戏的控制很简单 及用键盘的上下左右 或 WSAD 四个箭头控 制小球的上下左右四个方向 用户根据自己的战略方式选择小球能 吃到宝石的最佳捷径 从而一步步吃掉所有宝石 十一 运行结果 江南大学数字媒体技术专业2012 2013 年度第 1 学期 14 江南大学数字媒体技术专业2012 2013 年度第 1 学期 15 十二 心得体会 刘卉 在学习并实践的过程中 可能在脚本游戏的代码编写上还是出 现最多问题的 有的时候就是照搬书本上的代码 也会出错 不仅 仅是粗心 也是我对于代码并不熟悉导致的 在一遍遍的修改中 我对代码的编写也更加熟练 相比较之前的生疏 现在算是比较得 心应手了 此外 比较困扰我的就是摄像机位置的各方面调整 有 的时候很难调整到想要的角度 最后只能将就 这点让我很是纠结 对于这种情况 我试着各种方法达到理想效果 如果说我改变不了 摄像机 那我只能改变我设置的场景 对象的位置了 虽然这样的 方法比较笨 而且可能会比较繁琐 但是最终也帮助我实现了想要 达到的效果 我觉得一些基础快捷键要首先掌握 才能节省时间和 精力 场景搭建初期要先构思好场景的基本风格 选择静态模型和 装备的时候就不会手忙脚乱了 场景和灯光基本完成时 要多构建 几次 一边检验一边修改 这样在后期才不会出现很多错误 以便 同组合作的同学的后修工作能很快上手 在尝试着做游戏的同时我 还是学到了很多 不能说了解但也是熟悉了这个软件 在与同学的 合作中 我学着一点一点的去完善 两人同组合作 大家积极交流 有问题一起想办法解决 不经提高了工作效率 同时增进了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论