




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 II项目说明设计题目古堡行动设计系统平台:Android 4.0.3 以上(Windows 7)技开发工具:Unity 、 MonoDevelop( Visual Studio 2013)术开发语言:C#参数插件: 无设1. 游戏的登录注册,开始界面,以及游戏界面的UI 设计计2. 游戏地图,主角,敌人等的设计要求界面简洁,大气,操作流程清晰,无过多错误代码逻辑或思路清晰,有大部分全面的注释工作量课程设计报告2755 字源程序大概4500 行工2018.04.15-04.28 根据课程设计的要求,进行需求分析,查找相关资料;作2018.04.29-05.10 进行项目概要设计和整理素材;计2
2、018.05.11-06.18 详细设计和具体项目实现;划2018.06.19-06.22 对游戏进行调试分析,撰写课程设计报告。参1 金玺曾.Unity3D 手机游戏开发. 北京:清华大学出版社,2013考2 HYPERLINK 资3 HYPERLINK / /料4 HYPERLINK / / TOC o 1-5 h z 需求分析 1概要设计 1设计思路 1存储结构设计 1功能模块设计 2详细设计 3游戏工程视图 3游戏界面布局 4功能模块设计实现 5其他设计实现 11摄像机的跟随 11游戏音效的添加 12游戏开始界面的设计 12运行与测试 14总结 错误!未定义书签。小组成员分工表 错 误
3、!未定义书签。 1 需求分析技术需求此游戏是在Unity2018 上开发出来的,Unity2018 可以支持2D、 3D场景的编辑, 本游戏是基于3D场景开发的。游戏中的脚本语言使用的是C#, Unity2018中的 microsoft visual 2017 为脚本编辑提供了平台。功能需求古堡行动游戏玩法介绍:玩家通过注册登录帐号进入游戏,游戏中设有三个敌人出生点,并且会自动寻路并攻击玩家,玩家通过持枪射击对抗敌人,每击杀一个敌人玩家为加一分,玩家有血条,地图会随机生成血包,供玩家增加血量,当玩家血量值为 0 时,游戏失败;当玩家击杀敌人个数达到200 个后,游戏即为胜古堡行动游戏制作功能的
4、需求:登录注册、玩家和敌人AI 、 游戏特效 (子弹设计特效,敌人死亡特效)、敌人生成、敌人自动寻路、碰撞检测、UI 界面设计.2 概要设计设计思路我们选择第一人称射击游戏的设计来源来自经典的cf 游戏,但由于能力和时间原因,我们做出来的很简单。设计思路是要保证游戏拥有最基本的第一人称射击游戏的功能。存储结构设计游戏中出现的所有类:例如:Player 类:玩家类Enemy类:敌人类AppearEnemy类:敌人出生点AddBlood 类:血包Bullet 类:子弹ShootAudio 类:射击音效GameManage类:游戏状态设计rXml文档 功能模块设计游戏具有六大功能模块,分别为:游戏开
5、始模块( 1)战斗模块( 2)生存模块( 3)场景切换模块:包括场景触发器的设计;( 4)分数统计模块:包括对玩家分数的显示;( 5)游戏结束模块:包括游戏结束菜单的设计;其功能模块图如图2-1 所示:古堡行动游戏游 戏 开 始 模 块战 斗 模 块生 存 模 块场 景 切 换 模 块分 数 统 计 模 块游戏结束模块2-1 功能模块图3 详细设计3.1 游戏工程视图“ Audios ”文件夹如图 3-1 所示 :图 3-1“ Audios ”文件夹Textures ”文件夹如图 3-2 所示:3-2“ Textures ”文件夹然后我们需要新建“ Materials ” : 材质文件夹;“
6、Prefabs ” : 预制文件夹;Scenes”:游戏场景文件夹;“Scripts ”:脚本文件夹。总体工程视图如图3-3 所示:3-3 总体工程视图3.2 游戏界面布局开始界面3-4 开始界面3.2.2. 结束界面3-5 结束界面3.3 功能模块设计实现游戏开始设计void Start()_zc.gameObject.SetActive(false);_xmlPatch = Application.dataPath + /user.xml;if (!File.Exists(_xmlPatch)XmlDocument xmlDoc = new XmlDocument();XmlElement
7、 root = xmlDoc.CreateElement(Root); xmlDoc.AppendChild(root);XmlElement user = xmlDoc.CreateElement(User); user.SetAttribute(user_name, Admin);user.SetAttribute(user_password, 123);user.SetAttribute(qq, 123456);root.AppendChild(user);xmlDoc.Save(_xmlPatch);Debug.Log(xml creat success!);/ Update is c
8、alled once per frame public void jingruyouxi()if (zhanghaoinput.text = | mimainput.text = )tishixx.text = 密码或用户名为空,请重新输入!;zhanghaoinput.text = ;mimainput.text = ;return;Debug.Log(zhanghaoinput.text);Debug.Log(mimainput.text);XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(_xmlPatch);XmlNodeList n
9、odelist = xmlDoc.SelectSingleNode(Root).ChildNodes; foreach (XmlElement xe in nodelist) Debug.Log(xe.GetAttribute(user_name);if (xe.GetAttribute(user_name) = zhanghaoinput.text)if (xe.GetAttribute(user_password) = mimainput.text)tishixx.text = 登录成功!;SceneManager.LoadScene(4); else tishixx.text = 密码输
10、入有误!;elsetishixx.text = 用户未注册,请注册!;public void zc()if (zcyonghuinput.text = | zcmimainput1.text = | zcmimainput2.text = )tsxx.text = 信息不完整!;return;if (zcmimainput1.text != zcmimainput2.text)tsxx.text = 两次密码输入不一致!;return;XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(_xmlPatch);XmlNodeList nodeli
11、st = xmlDoc.SelectSingleNode(Root).ChildNodes;foreach (XmlElement xe in nodelist)if (xe.GetAttribute(user_name) = zcyonghuinput.text)tsxx.text = 用户名已经被占用!;return;/取得根节点XmlNode root = xmlDoc.SelectSingleNode(Root);/创建User新节点XmlElement user = xmlDoc.CreateElement(User);/XmlElement user1 = xmlDoc.Creat
12、eElement(User_lov);/XmlText lov = xmlDoc.CreateTextNode (158);/user1.AppendChild (lov);/设置属性user.SetAttribute(user_name, zcyonghuinput.text);user.SetAttribute(user_password, zcmimainput1.text);/将新节点加入根节点root.AppendChild(user);/root.AppendChild(user1);/保存文件xmlDoc.Save(_xmlPatch);tsxx.text = (恭喜!注册成功!
13、);zcyonghuinput.text = ;zcmimainput1.text = ;zcmimainput2.text = ;close_zc();战斗模块设计void Update () /生成一道射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);/射线碰撞RaycastHit hit;/点击鼠标左键if (Input.GetMouseButtonDown(0) & bullets 0)/剩余子弹个数bullets-;/通过射线获得目标点/Returns a ray going from camera throu
14、gh a screen point./Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);/Returns a point at distance units along the ray.Vector3 target = ray.GetPoint(20);/修改发射起点的朝向/firePoint.transform.LookAt(target);/实例化子弹Rigidbody clone = (Rigidbody)Instantiate(bullet, firePoint.transform.position, firePoi
15、nt.transform.rotation);/初始化子弹的方向速度clone.velocity = (target - firePoint.transform.position) * 3;/播放子弹音频Gun.SendMessage(shootAudio);/如果射线碰到物体的话1 9 打开第九层if (Physics.Raycast(ray, out hit, 100, 1 9)/击中控制台反馈Debug.Log(hit.normal);/销毁碰撞器Destroy(hit.collider);/加分score+;/Destroy(hit.transform.gameObject);hit.
16、transform.gameObject.GetComponent().dead();/修改发射起点的朝向firePoint.transform.LookAt(Camera.main.ScreenPointToRay(Input.mousePositio n).GetPoint(20);/胜利检测if(score = 50)Debug.Log(Game victory!);Application.LoadLevel(Game victory);/死亡检测if(blood = 0 | bullets 50)blood = 100;elseblood += 50;/掉血public void re
17、duceBlood(int attackType)switch (attackType)case 6:blood -= 6;break;case 8:blood -= 8;break;case 10:blood -= 10;break;default:Debug.Log(blood error); break;场景切换模块设计public class StartGAME : MonoBehaviour / Use this for initializationvoid Start () / Update is called once per frame public void sg () Sc
18、eneManager.LoadScene(0);public void Fh()SceneManager.LoadScene(START);分数统计模块设计if (Physics.Raycast(ray, out hit, 100, 1 0 &m_CharacterController.isGrounded)/速度向量长度大于/0,在地面上m_Camera.transform.localPosition =m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitu de +(speed*(m_IsWalking ? 1f :m_Runs
19、tepLenghten);newCameraPosition = m_Camera.transform.localPosition;newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset(); elsenewCameraPosition = m_Camera.transform.localPosition;newCameraPosition.y = m_OriginalCameraPosition.y -m_JumpBob.Offset(); m_Camera.transform.localPosi
20、tion = newCameraPosition;游戏音效的添加public class ShootAudio : MonoBehaviour / Use this for initializationvoid Start () / Update is called once per framevoid Update () public void shootAudio()AudioSource audio = GetComponent(); audio.Play();游戏 UI 的设计public class RoleBulletController : MonoBehaviour /初始子弹个数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保安工作总结计划安全设备行业保安工作的设备测试
- 企业财务战略与市场策略的协调计划
- 提高学生美术表达能力的策略计划
- 消费者关系管理的工作计划
- 2025年中国休闲食品行业市场运行态势、市场规模及发展趋势研究报告
- 七年级下册《一元一次不等式的解法》课件与练习
- 2025年真空采血管项目发展计划
- 构建稳定异步消息传递框架
- 2025年印铁油墨项目建议书
- 白雪公主的童话世界解读
- 二年级下册数学计算题400道及答案
- 第6课《飞向蓝天的恐龙》两课时学习任务单部编版四年级语文下册
- 生产清场管理制度课件
- 小学科学质量分析报告
- 口腔医院客服培训课件
- 04G325吊车轨道联结及车挡
- 2024年金城出版社有限公司招聘笔试参考题库含答案解析
- 皮下注射的并发症及预防
- 罗沙司他治疗肾性贫血的疗效与安全性评价演示稿件
- 混凝土搅拌站有限空间作业管理制度模版
- 苯板厂应急预案范本
评论
0/150
提交评论