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

下载本文档

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

文档简介

1、a宙z哮课程:Unity3D课程设计题目:小球吃宝石班级:数媒0902学号:0305090205/0305090206姓名:刘卉/沈玉婷日期:2012.12一、摘要网络游戏是一种新型的 IT 产业。我们研究主要内容是网络软件 设计方法,网络游戏:英文名称为 Online Game,又称“在线游戏”, 简称“网游”。指以互联网为传输媒介,以游戏运营商服务器和用户 计算机为处理终端, 以游戏客户端软件为信息交互窗口的旨在实现娱 乐、休闲、交流和取得虚拟成就的具有可持续性的个体性多人在线游 戏。本报告主要讲述了这个小游戏的设计思路及初步使用 Unity3D 软件的感受和总结。设计过程中,首先建立自己

2、想要的模型,然后在 此基础上进行需求迭代, 详细设计时不断地修正和完善, 经过测试阶 段反复调试和验证,最终形成达到设计要求的小游戏。基于视频教程“平衡球”的基础,构建了一个益智游戏风格的游 戏,并有主角(小球)与关卡(一关) 、游戏逻辑(触碰宝石) 、游戏 环境界面(环形轨道)等设计,使得玩家可以在场景轨道中进行小球 吃宝石的冒险游戏。本游戏的控制很简单,及用键盘的上下左右(或WSAD )四个箭头控制小球的上下左右四个方向, 用户根据自己的战略方式选择小 球能吃到宝石的最佳捷径,从而一步步吃掉所有宝石。分工:刘卉场景的构建和小球、宝石等道具的设计;沈玉婷 游戏内容的构思设计和程序代码的编写。

3、关键词:网络游戏、小球吃宝石、浏览器形式。二、概述网络游戏程序设计 这一课程以大作业形式进行考核, 能更好 地锻炼学生综合运用本课程所授知识的能力。 大作业主要内容为设计 完成面向某一主题内容的游戏演示程序。自选游戏主题,并根据所选定的主题内容设计一个典型的游戏场 景及玩家逻辑,其中包含主角与关卡,游戏逻辑,游戏环境界面与交 互过程等的设计;开发完成与设计相符的游戏 Demo。要求使用 Unity3D 游戏开发软件实现上述游戏 Demo。三、具体要求1、每人单独完成,特殊可由 2 人合作完成。2、游戏主题自拟。3、根据所设游戏主题、 场景及玩家逻辑, 实现完成相应的游戏Demo,并撰写设计开发

4、报告。四、网络游戏介绍网络游戏是一种新型的 IT 产业。我们研究主要内容是网络软件设计 方法,网络游戏:英文名称为 Online Game,又称“在线游戏”,简 称“网游”。指以互联网为传输媒介,以游戏运营商服务器和用户计 算机为处理终端,以游戏客户端软件为信息交互窗口的旨在实现娱 乐、休闲、交流和取得虚拟成就的具有可持续性的个体性多人在线游 戏。网络游戏目前的使用形式可以分为以下二种:(1) 浏览器形式 基于浏览器的游戏,也就是我们通常说到的网页游戏,又称为 WEBGAM,E 它不用下载客户端, 任何地方任何时间任何一台能上网的电脑 快乐的游戏,尤其适合上班族,其类型及题材也非常丰富。(2)

5、 客户端形式这一种类型是由公司所架设的服务器来提供游戏, 而玩家们则是由公 司所提供的客户端来连上公司服务器以进行游戏, 而现在称之为网络 游戏的大都属于此类型。 此类游戏的特征是大多数玩家都会有一个专 属于自己的角色 (虚拟身份 ) ,而一切角色资料以及游戏资讯均记录在 服务端。就目前网络游戏主要的游戏模式而言,主要有以下几种:动作游戏、 冒险游戏、益智游戏、卡片游戏、战略游戏等等。本课程设计所设计 的游戏类型是小球吃宝石游戏,属于益智游戏的一种。五、设计主题 基于视频教程“平衡球”的基础,构建了一个益智游戏风格的游戏, 并有主角(小球)与关卡(一关) 、游戏逻辑(触碰宝石) 、游戏环境 界

6、面(环形轨道) 等设计,使得玩家可以在场景轨道中进行小球吃宝 石的冒险游戏。六、设计思路 本游戏以几个环环相扣的轨道作为小球运动的轨迹, 在轨道上分别设 计一些红宝石,通过电脑上的上下左右箭头(或 WSA)D 分别控制小 球的运动方向(上下左右) ,稍有偏差小球就会离开平面,游戏结束; 相反,如果小球运动位置没有偏离所设计轨道平面而且碰触到红宝 石,即算初步成功,当小球全部吃掉所设计的红宝石,游戏胜利。本报告主要讲述了这个小游戏的设计思路及初步使用Unity3D软件的感受和总结。设计过程中,首先建立自己想要的模型,然后在此基 础上进行需求迭代,详细设计时不断地修正和完善,经过测试阶段反 复调试

7、和验证,最终形成达到设计要求的小游戏。分工:刘卉 场景的构建和小球、宝石等道具的设计;沈玉婷 游戏内容的构思设计和程序代码的编写。七、具体构建步骤1、天空盒子添加2、用BSP笔刷建造场景的基本结构。3、为场景贴图。贴图时,根据道具的风格,选择泥土或砖块的BSP贴图,每次贴图选择一个平面的一个面,复制粘贴直至完全贴完4、放置静态模型和道具。本场景设定为环形轨道上小球的运 动,选用小球和宝石做道具。5、场景灯光。添加相应的点光源,查看效果。於.7IV6、摄像机。调整摄像机到合适的位置八、程序脚本也 ScriptsK GarriE*erTricierB M irileCmeeaB MrblCQntr

8、olB IlarbleGmeMandgerGameoverTrigger):1、游戏结束触发器程序using Un ityE ngine;using System.Collect ions;public class GameoverTrigger : Mon oBehaviour void On TriggerE nter()MarbleGameMa nager.SP.SetGameOver();2、小球的控制程序(MarbleControl):using Un ityE ngine;using System.Collect ions;public class MarbleC on trol

9、: Mon oBehaviour public float moveme ntSpeed = 6.0f;void Update () Vector3 moveme nt = (In put.GetAxis(Horiz on tal) * -Vector3 .left * moveme ntSpeed) + (In put.GetAxis(Vertical) * Vector3.forward *moveme ntSpeed);rigidbody.AddForce(moveme nt, ForceMode.Force);void On TriggerE nter(Collider other )

10、 if (other.tag = Pickup)MarbleGameMa nager.SP.Fou ndGem();Destroy(other.gameObject);else/Other collider. See other.tag and other. name3、 小球游戏运作情形设计程序 (MarbleGameManager):using UnityEngine;using System.Collections;public enum MarbleGameState playing, won,lost ;public class MarbleGameManager : MonoBeh

11、aviourpublic 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.La

12、bel( Found gems: +foundGems+/+totalGems );if (gameState = MarbleGameState.lost)GUILayout.Label(You Lost!); if(GUILayout.Button(Try again) ) Application.LoadLevel(Application.loadedLevel);else if (gameState = MarbleGameState.won)GUILayout.Label(You won!); if(GUILayout.Button(Play again) ) Application

13、.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、 跟踪小球球的摄像机设

14、置( 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;void Update () newPos,Vector3 newPos = target.position + new Vector3(0, relativeH

15、eigth, -zDistance); transform.position = Vector3.Lerp(transform.position, Time.deltaTime*dampSpeed); 八、关于服务器及网络模块的设计及实现网络模块的设计主要为了实现网络版的服务端与客户端之间的连接以及它们之间数据的传送。图展示了网络模块的结构图,网络模 块主要由客户机服务器两部分组成。在使用TCP协议时,一般服务端进程先使用 socket调用得到一 个描述符,然后使用bind调用将一个名字 与socket描述符连接起来, 对于In ter net域就是将In ternet地址联编到socket。

16、之后,服务端使用 listen调用指出等待服务请求队列的长度。然后就可以使用accept调用等待客户端发起连接,一般是阻塞等待连接,一旦有客户端发出 连接,accept返回客户的地址信息,并返回一个新的socket描述符,该描述符与原先的socket有相同的特性,这时服务端就可以使用这个 新的socket进行读写操作了。一般服务端可能在accept返回后创建一个新的进程进行与客户的通信,父进程则再到accept调用处等待另 一个连接。客户端进程一般先使用socket调用得到一个socket描述符,然后使用connect向指定的服务器上的指定端口发起连接,一旦 连接成功返回, 就说明已经建立了与

17、服务器的连接, 这时就可以通过 socket 描述符进行读写操作了。一旦创建Socket,在客户端,你将可以通过Connect方法连接到指定 的服务器(你可以在 Connect方法前Bind端口,就是以指定的端口 发起连接,如 果不事先 Bind 端口号的话,系统会默认在 1024 到 5000 随机绑定一个端口号),并通过 Send方法向远程服务器发送数据, 而后可以通过Receive从服务端接收数据;而在服务器端,你需要使 用Bind方法绑定所指定的接口使Socket与一个本地终结点相联,并 通过 Listen 方法侦 听该接口上的请求,当侦听到用户端的连接时, 调用Accept完成连接的

18、操作,创建新的Socket以处理传入的连接请 求。使用完 Socket后,使用 Close方法关闭Socket。下图展示了 网络模块流程图, 通过启动服务器与客户机, 完成了它们之间的连接 以及数据交换。九、游戏规则游戏规则模块也是本文的一个重点部分,需要实现小球吃宝石游戏 的基本规则,因此,首先要解决的问题是小球的运动方向,根据轨道 的方向制定小球的运动路线,然后要解决的问题是小球与红宝石的接 触过程,如果能保证小球不离开轨道而且又能吃到宝石,则小球则达到初步成功;如果能吃到所有宝石,贝S游戏胜利;相反,如果小球不 慎离开轨道,则宣布游戏失败。十、 用户控制本游戏的控制很简单,及用键盘的上下

19、左右(或 WSA)D 四个箭头控 制小球的上下左右四个方向, 用户根据自己的战略方式选择小球能吃 到宝石的最佳捷径,从而一步步吃掉所有宝石。十一、 运行结果十二、 心得体会(刘卉)在学习并实践的过程中, 可能在脚本游戏的代码编写上还是出现 最多问题的,有的时候就是照搬书本上的代码,也会出错,不仅仅是 粗心,也是我对于代码并不熟悉导致的,在一遍遍的修改中,我对代 码的编写也更加熟练, 相比较之前的生疏, 现在算是比较得心应手了。 此外,比较困扰我的就是摄像机位置的各方面调整, 有的时候很难调 整到想要的角度,最后只能将就,这点让我很是纠结。 对于这种情况, 我试着各种方法达到理想效果, 如果说我

20、改变不了摄像机, 那我只能 改变我设置的场景、对象的位置了,虽然这样的方法比较笨,而且可 能会比较繁琐, 但是最终也帮助我实现了想要达到的效果。 我觉得一 些基础快捷键要首先掌握, 才能节省时间和精力。 场景搭建初期要先 构思好场景的基本风格, 选择静态模型和装备的时候就不会手忙脚乱 了。场景和灯光基本完成时,要多构建几次,一边检验一边修改,这 样在后期才不会出现很多错误, 以便同组合作的同学的后修工作能很快上手。在尝试着做游戏的同时我还是学到了很多, 不能说了解但也 是熟悉了这个软件。在与同学的合作中,我学着一点一点的去完善。 两人同组合作,大家积极交流,有问题一起想办法解决,不经提高了 工作效率,同时增进了同学之间的感情。十三、 心得体会(沈

温馨提示

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

评论

0/150

提交评论