版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南理工大学电气工程与自动化学院毕业实习情况鉴定表(由实习单位负责填写并加盖公章)学生姓名专业班级实习单位劳动态度认真较认真一般较差工作能力强较强一般较差实习期间解决的实际问题或所作的日常工作综合评价实习单位(签章)年月日注:(每个学生填写一页)毕业实习报告答辩意见指导教师建议成绩:评定成绩:____________答辩组长(签名):____________年月日实习单位:实习时间:至学院(系):专业:学生姓名:学号:年月日SHENANPOLYTECHNICUNIVERSITY毕业实习报告用纸毕业实习报告实习目的通过本次实习使我能够从理论高度上升到实践高度,更好的实现理论和实践的结合,为我以后的工作和学习奠定初步的知识。通过本次实习,一方面能使我更加进一步了解公司的运转模式和员工的工作方式,另一方面也为我毕业后的工作打下坚实的基础,使我能更好的融入公司,更好的完成公司所要求的任务。通过本次实习使我能够亲身感受到由一个学生转变到一个职业人的过程。实习单位及岗位介绍上海市第九城市:“第九城市”是国内最大的网络游戏开发商和运营商之一,位于上海市浦东新区张江高科技园区碧波路690号3号楼,其旨在通过世界“第九艺术”——游戏艺术,为都市人创造一种全新的在线娱乐生活方式。在这个“城市”里:激情、活力、浪漫时时相伴;平等、尊重、关爱充溢其间。
至今为止,第九城市旗下的产品有《奇迹》(MU),《快乐西游》,《魔兽世界》(WOW),《卓越之剑》(GE),《奇迹世界》(SUN),《激战》(GuildWars),《Hellgate:London》和《仙境传说2》(暂定名)。岗位介绍:在目前的这三个月中,我们在公司培训中心——上海市第九城市培训中心,在有十几年工作经验的老员工的带领下学习Unity3D项目的建设;目前阶段是作为学员参加九城公司的培训实习。实习内容及过程3.1Unity3D介绍随着移动互联网的发展和游戏研发技术及PC硬件水平的提升,跨网、跨平台和跨终端的网络应用有了更大的拓展空间。在当前传统网游市场疲软的现状下,国内外厂商纷纷将视线转向了跨平台游戏领域。
近年来,网页游戏的发展趋势侧重于2D画面向3D的升级,3D页游已经被公认为将是该领域的主流形态。而基于Unity
3D引擎的画面和跨平台应用优势,在目前海内外渐成趋势的跨平台游戏领域,Unity
3D引擎显然是各大厂商关注的焦点。
接下来是它的脚本语言,unity3D的脚本语言在Unit3D游戏开发中占据了主角地位。它提供了三种脚本语言的支持:Javascript、C#、Boo。其中Boo是Python在.Net上的实现,unity3D通过Mono实现了.Net代码的跨平台。这样对数据库、xml、正则表达式等技术的支持都因为采用了.Net而得到完美的解决。脚本语言的动态特性让我们可以方便的通过名称、层次结构、tags
等方式访问所有的对象。更大的好处就是脚本语言的跨平台性,绝大部分平台相关的代码都放到了引擎的内部,而游戏内容相关的代码都可以跨平台执行,在游戏的制作过程中实现了跨平台。
时至今日,国内外跨平台游戏领域在不到一年时间内,已经涌现出数十款PC端的Unity
3D网游,而基于该引擎的手机游戏更是多达数百款。现在,业内在高品质3D页游的引擎选择上,有Adobe和Unity
3D两大引擎,Adobe是在它最新版Flash设定中,才开始支持3D引擎,而Unity
3D引擎在实际的应用上,已经在国内外陆续推出了数十款认可度颇高的3D页游。所以相对于其他游戏引擎来说,unity3D游戏引擎的发展还是很可观的。
3.2实习内容本次实习,公司给我们的是预期三个月的培训实习,在这三个月中,前半期是C、C#和Unity3D软件的基础知识的巩固和提高,一方面帮助我们复习学校所学的基础知识,另一方面站在公司的项目制作的角度指导和纠正我们经常性的常识性错误,而后半期则是公司项目的熟悉、建设和纠正bug。在这段的实习培训中,我不仅仅巩固了在学校所学的C和C#的基本知识,更加慢慢的熟悉了C和C#在项目中结构的构架方式和程序的排布模式思想。在目前的这三星期的实习中,我自己动手制作了一款简单游戏——“疯狂的小鸟”,其中包含了UI的登陆界面、注册界面和游戏界面。下面我就以自己这三星期的项目成果为例,为我的实习过程简单的描述一下:3.21UI的登陆界面图(1)登陆界面如图(1),在这个登陆UI的设计过程中,我以C#语言为基础,利用Unity3D软件建模,构成了这个登陆界面。在这个页面的设计过程中,主要分UIManager,StartMenu,RegisterMenu,MessageMenu四个脚本模块,其中UIManager脚本模块主管页面布局设计,整体搭配等问题,是整个登陆系统的核心主板,起桥接联系其他版块的作用;StartMenu脚本模块主管LOGO的登陆问题,负责转接MessageMenu脚本模块和进入游戏的作用;RegisterMenu脚本模块负责转接注册界面和联系登陆界面的作用;MessageMenu脚本模块是独立模块,负责处理登陆的各种信息的,是独立的信息处理模块。其各脚本模块主要程序有:UIManager:publicclassUIManager:MonoBehaviour{ publicstaticUIManagerui; publicList<GameObject>m_MenuPrefab=newList<GameObject>(); [HideInInspector] publicMenuStateCurrentState; [HideInInspector] publicMenuStatePreState;[HideInInspector]publicstringMessageText; voidStart(){ ui=this; CurrentState=MenuState.Start; } voidUpdate(){ } publicvoidUpdateMenu(MenuStatestate) { PreState=CurrentState; CurrentState=state; Instantiate(m_MenuPrefab[(int)state]); }publicvoidUpdateState(MenuStatestate){PreState=CurrentState;CurrentState=state;} }publicenumMenuState{ Start, Register, Message,}StartMenu:publicclassStartMenu:MonoBehaviour{publicTextUsername;publicTextPassword; publicvoidRegisterButton() {if(UIManager.ui.CurrentState!=MenuState.Start)return; UIManager.ui.UpdateMenu(MenuState.Register); }publicvoidLoginButton(){if(UIManager.ui.CurrentState!=MenuState.Start)return;loginMessage();UIManager.ui.UpdateMenu(MenuState.Message);}publicvoidloginMessage(){if(NameIsNull(Username.text)){if(PasswordIsNull(Password.text)){UIManager.ui.MessageText="登陆成功";}else{UIManager.ui.MessageText="请输入密码";}}else{UIManager.ui.MessageText="请输入用户名";}}privateboolNameIsNull(stringname){if(name=="")returnfalse;elsereturntrue;}privateboolPasswordIsNull(stringpassword){if(password=="")returnfalse;elsereturntrue;}}MessageMenu:publicclassMessageMenu:MonoBehaviour{publicTextMessage;voidStart(){Message.text=UIManager.ui.MessageText;}publicvoidCancelButton(){UIManager.ui.UpdateState(MenuState.Start);Destroy(gameObject);}}3.2.2注册界面图(2)注册界面如图(2)是注册界面,附属于登陆界面,但是作为独特的注册界面,其设计与登陆界面差不多,只是表现的功能不同罢了,在注册页面的设计上,起作为信息的储存和与登录系统之间的相互反馈和信息传递,有了其独特的作用。与其功能实现主要脚本模块是RegisterMenu脚本模块,当然与UIManager,Start——Menu,MessageMenu等脚本模块也是相关联的。RegisterMenu:publicclassRegisterMenu:MonoBehaviour{ publicvoidCancelButton() { UIManager.ui.UpdateState(UIManager.ui.PreState); Destroy(gameObject); }}3.2.3游戏界面图(3)游戏界面如图(3)游戏界面,这是我所设计游戏所达到的最终状态,其目前把“疯狂的小鸟”的基本游戏状态完美实现。当然这只是目前这个阶段的一个小结果,最终的成品项目还有待进一步的开发和完善,下面我就先把这半成品的设计来简单叙述一下:在整个游戏的设计过程中,首先需要构思的是程序的整体构架问题,而对于这个项目,我们首先需要准备的是素材,例如小鸟,柱子,小白球,小猪,积木等,在准备完毕后,就可以开始设计了;在设计时,我们首先得把整体设计框架构思好吧,如小鸟的脚本模块-Bird_control,其得控制小鸟的飞行,撞击,计数等基本问题,小猪的脚本模块-PigScript,其得控制小猪的受撞击的力度,消失和计分等问题,照相机镜头转换脚本模块-CameraControl,其得控制相机的方向,转向和镜头远近大小问题等。在游戏设计中,这些组件,脚本模块既相互独立,又相互联系,并且在不断地调试过程中,才有了能完美运行的游戏项目。其主要程序如下:Bird_control:publicclassTestGravity:MonoBehaviour{publicGameObject[]obj;publicTransform[]path;publicstaticinti=0;publicstaticTestGravitytest; voidStart(){test=this;ItweenMove(); }publicvoidItweenMove(){iTween.MoveTo(obj[i],iTween.Hash("path",path,"time",1f,"easetype",iTween.EaseType.linear,"oncomplete","CompleteFunc","oncompletetarget",gameObject));}voidCompleteFunc(){Debug.Log("123");obj[i].GetComponent<Bird_control>().enabled=true;} voidUpdate(){ }}PigScript:publicclassPigScript:MonoBehaviour{privateVector2vec; voidStart(){ } voidUpdate(){vec=rigidbody2D.GetPointVelocity(transform.position);if(Mathf.Abs(vec.x)>0.5f||Mathf.Abs(vec.y)>0.5f){Destroy(gameObject);} }CameraControl:publicclassCameraControl:MonoBehaviour{privatefloatscroll; voidStart(){ } voidUpdate(){scroll=Input.GetAxis("MouseScrollWheel");Camera.main.orthographicSize+=scroll;Camera.main.orthographicSize=Mathf.Clamp(Camera.main.orthographicSize,2.5f,3.5f); }}TestGravity:publicclassTestGravity:MonoBehaviour{publicGameObject[]obj;publicTransform[]path;publicstaticinti=0;publicstaticTestGravitytest; voidStart(){test=this;ItweenMove(); }publicvoidItweenMove(){iTween.MoveTo(obj[i],iTween.Hash("path",path,"time",1f,"easetype",iTween.EaseType.linear,"oncomplete","CompleteFunc","oncompletetarget",gameObject));}voidCompleteFunc(){Debug.Log("123");obj[i].GetComponent<Bird_control>().enabled=true;} voidUpdate(){ }}四、实习收获在设计“疯狂的小鸟”的过程中,我失败了很多次,同样我也学到了很多,不仅仅是做项目的收获,更是以后生活、工作和学习方面收获。4.1项目总结在做UI登陆界面时,原本我以为很简单事,结果在我做的时候,往往达不到我的预期,就像一开始的登陆和注册的跳转页面程序,我写的程序老是不响应或者红色报警,使我心情特别郁闷,中途差点直接放弃,结果在我查询无果,准备暂时放弃时,教我们的那个资深老员工大哥过来了,询问了一下我的详细情况,结果就是一个字母大小写误差,使我的程序始终事与愿违。在大哥说完之后,我当时真的不知道是兴奋还是羞愧,或许两者都有,兴奋是,烦恼终于解决了,羞愧是这么简单的问题我竟然没发现,而且还是一个非常显而易见的。从这件事中,我再一次发现了我经常烦的错误:心烦气躁和马虎大意。或许这也是我大学四年很难完美的做一件成功的事的直接原因,每次的反省,每次的重复犯错,使我一直有借口逃避自己的不完美。一字之差,就是成功与失败的差距,就是幸福与失落鲜明对比,所以对于即将毕业的我,从现在起,必须更加严格,更加严厉的要求自己,否则未来的自己依然是遗憾!而当我在做游戏界面时,大约花费了一个星期,才达到现在的结果,由开始的一只小鸟组件没有限制的飞到可以确定方向的飞,再到在一定范围内蓄力后按确定路线做自由落体的飞,到现在可以提前预测路线的完美飞翔,经历了数次的调试和完善,使小鸟终于能勉强达到了我的要求;当然中间遇到了好多麻烦,也有使我差点疯狂的bug,而最终在我的不断调试、查询、询问同学和老师和百度下,达到了目前的状态。在这个过程中,我碰到的大多问题是,知道该则么写,但是不确定具体函数的应用,不明白具体函数的具体功能,使我总是事倍功半,达不到自己的预期,这一点充分说明了我自己在C#方面的基本功的薄弱和欠缺,需要空闲时间的大量补充才行;在设计小鸟飞行路线时,重力二元二次函数的计算和调试,也差点使我放弃路线的设计。原因是算法和游戏演示总存在那个误差,调试好久也没能把握住诀窍,还差点是整个程序崩溃,当时也是我郁闷了好久,不过在最后的坚持下,还是摸索出了规律,使我完成了前期的预期的目标。在这个过程中,我再一次肯定了“码农”的耐心和不服输的韧性,所以今后的我会注重这方面的培养和锻炼,遇事不慌、不急和不燥,耐心的朝自己既定的目标走去,不论路途的种种阻隔,坚持自己的方向和目标。这个过程也充分体现了我们在学校所学知识的价值,体现了课堂上老师解题分析思路的重要性!在设计小猪脚本时,我一开始想的是到时给小猪一个力,如果大于某一个特定值,就消失,并且计分,但是当我去写这句函数时,明明是很简单的一句函数,但是在与插件结合时,总是不那么完美,运行程序时总是达不到自己完美的预期。结果在多次调试无果后,问了一下叛变的同学,结果就是定义和插件结合那块,我漏了定义的范围要求,结果使我得不到自己的预期。在这件事中,我再次看到了自己的盲目自信,如果当初自己去查一下这个函数的具体要求和具体功能,或许就不会出现这样的乌龙事件,而我又能更快更好地完成既定的要求。再设计照相机镜头时,总是不能很好的利用鼠标滚龙很好的控制镜头的大小,而当自己沉浸在查找各种资料时,结果同学从旁边过去,说了一个函数,结果省了一大摊子事,使我当时很兴奋,不过同时也明白了一个道理,互助的优势和结交同类人的优势。有时候有的事对别人很简单,所以有时候可以多多向别人学习,借鉴别人的优势,发扬自己
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《塑料流变成型原理》课件
- 《直线的倾斜角和斜率》课件11北师大版必修
- 《水钠代谢紊乱》课件
- 《机械波部分》课件
- 2027届湖北省襄阳市枣阳中考五模物理试题含解析
- 《消防安全漫画》课件
- 《产科技术培训》课件
- 《儿童节主题模板》课件
- 《橙黑风格模版》课件
- 《保洁知识培训》课件
- 松毛岭战役课件
- 环境保护基础知识培训课件
- 电解质紊乱的护理措施
- 广西北部湾银行招聘笔试真题2025含答案
- JG/T 3049-1998建筑室内用腻予
- 2025-2030中国自动焊锡机行业发展分析及发展趋势预测与投资风险研究报告
- 《装配式建筑识图与构造》教学课件:模块5-识读叠合板和梯段板详图
- 2025年大学生防诈骗知识竞赛题库试题及答案(共60题)
- 北京市教育委员会内部控制评价工作指导手册
- 2025年中国铁塔校园招聘笔试参考题库含答案解析
- 总工会招聘考试考前必做500道
评论
0/150
提交评论