




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要本篇论文主要流程是通过从游戏发展的背景引入Unity引擎制作游戏的,然后写出自己为什么要以用Unity制作一个2D小游戏来进行毕业设计,对Unity的基础介绍,还有对Anima2D这款组件的介绍来引入下文。正文主要写自己是如何利用Unity进行该2D游戏的制作,以及自己制作游戏时候的思考和流程,以及在网上寻找的各种各样的解决方案,还有用Anima2D制作角色的骨骼动画的过程,并且在论文中提出自己在完成毕业设计的时候遇到的困难,提出自己的解决方案,并且提出自己当时还没有解决的瓶颈,通过这样,为大家初步介绍Unity和Anima2D的基本操作和一些在本次毕业设计上用到的组件的操作方式和自己遇到的问题。最后通过总结本次毕业设计的成果以及遇到的困难,来检验自己的学习成果,分析自己的不足。
AbstractThisarticleisintroduceunityenginetomakegamesthroughthebackgroundofgamedevelopment,Alsowritethereasonwhywanttomakea2Dgamewithunityforgraduationdesign,andintroductiontheunityengine,andAnima2d.Themainbodymainlydescribesishowtouseunitytomakethe2Dgame,andproposethethinkingandprocesswhenmakingthegame,varioussolutionsfoundontheInternet,alsowillintroducetheprocessofmakingthecharacter'sskeletonanimationwithanima2d.Inthepaper,Iwillputsforwardthedifficultiesencounteredwhencompletingthegraduationdesign,andputsforwardsolutionstothisproblems.Inthisway,Iwillintroducethebasicoperationofunityandanima2d,alsotheusagemodeofcomponentsusedandtheproblemsIencounteredinthisgraduationproject.Finally,throughthesummaryoftheresultsofthisgraduationprojectandthedifficultiesencountered,totestmylearningresultsandanalyzemyshortcomings.
目录TOC\o"1-3"\h\u第一章绪论 11.1
选题的目的与意义 11.2
游戏行业的国内外研究现状 11.3
本次课题的主要研究内容 1第二章游戏开发工具及开发语言介绍 32.1Unity3D引擎简介 32.2
C#开发语言 32.3
Visual
Studio编程软件简介 3第三章游戏需求分析及概要设计 4第四章游戏详细设计及实现 54.1准备工作 54.2游戏的具体设计和实现及具体操作和思路 5第五章游戏测试 11第六章总结 17参考文献 19致谢 20第一章绪论1.1
选题的目的与意义本次论文选题的目的是通过完成一个简单的但是包括一般游戏的大部分要素的小游戏,通过这样对自己的学习情况做一次总的反省和归纳,指出自己的各种不足和仍要改进的地方。同时也为把自己在使用Unity进行游戏制作的时候的一些经验进行记录和公布,让自己以后或者在其他人在阅读该文章之后或多或少能得到收获。最后借此来体现游戏引擎的出现,对游戏制作行业发展的促进作用。1.2
游戏行业的国内外研究现状随着人们的生活水平的不断提高,人们的生活娱乐标准越发提高,从中诞生出了电脑游戏这一娱乐项目,在当今网络科技、计算机的普及,电脑游戏也随之普及开来,电脑游戏,也成了人们娱乐生活的潮流之一。从以前简单的像素游戏,到如今的3A大作,历经了半世纪的打磨和发展。而在这个潮流当中,人们在不断游玩各种游戏的时候,有不少人从中诞生了自己对游戏的一些独特的看法,并且尝试着自己去开发,制作游戏,但是由于技术、代码等要求导致门槛非常的高,让不少人止步于此。不过或许是某些团队发现了这种事,他们也赞同也愿意让玩家自己去DIY自己的游戏,他们向大众制作了不少可以简化游戏制作难度的游戏引擎,从而让游戏制作门槛大幅度的降低,甚至对一定收入以下的人群发布了免费的个人版满足大家对DIY游戏的需求。从2D到3D,从RPG到动作类,各种各样的游戏从只有大公司能制作到理论上每个人都能制作了,游戏的制作引擎也多种多样,从专注2DRPG的RPG制作大师,到能制作2D和3D且容易上手的Unity,到3A大作的虚幻引擎等,人们开始用各种各样的引擎去制作各种各样的游戏了。而且在各种各样的引擎当中,为了方便的使用游戏引擎进行游戏制作,玩家、官方、团队等制作人都很乐意的在上面共享自己的代码和插件,让游戏引擎的使用变得更加的方便和精细、有趣了。在某几个学期,我有幸的接触到Unity的课程,从而产生了兴趣,从UI制作到游戏内的制作比起纯粹的代码变得可视化,从素材的导入、刚体到碰撞器的设定和使用,相机的设定、动画的制作、动画机的管理,从枯燥的代码到高可视化界面都让人对游戏制作的认识有了翻天覆地的变化。1.3
本次课题的主要研究内容本次毕业设计和毕业论文的主要内容是围绕着Unity引擎和Anima2D组件去制作2D小游戏,通过这样像大家初步介绍Unity引擎和Anima2D的基础用法,同时对自己的知识进行一定的拓展,然后反馈自身遇到的问题,提出、并且对此进行解决,也提出一些自己在制作时因为种种原因无法解决的问题。最后对自己的学习进行检验,指出自己不足的地方。讨论Unity引擎对自己制作游戏的时候的帮助和Anima2D骨骼动画比起标准的动画切换在2D动画制作时候的不同、还有讨论自己对游戏引擎的出现和发展对于游戏制作和游戏行业发展的总结。为了测验自己的学习成效,并且检验自己在这几个月的重温和复习的成果,我把毕设的题目定位利用unity2D进行小游戏的制作,通过毕业设计对Unity这款游戏引擎进行复习、重温和运用,加深对该时段学习的理解和运用,尝试利用课堂上学习的知识和跟随老师制作的作业的步骤,把从老师教的Unity3D的东西运用到Unity2D,自己独自尝试做一次游戏从而来检测自己学习的效果。本次小项目制作中,除了运用了Unity的部分基础功能,还尝试加入了Unity的Anima2D插件,对原本没有动作的素材进行了骨骼、蒙皮、修改骨骼权重等操作,从而制作了简单的骨骼动画,使其能通过对骨骼的各种操作让素材通过变形、旋转和移动直接生成动画,在老师的基础教学中尝试加入了新插件的学习和运用,对自身的知识进行了小范围的扩展,然后去进行项目的制作。期间涉及了一些Unity的基础代码和Unity内的各种组件的运用和组合,以及动画制作的操作,利用骨骼动画为单张图片制作多个动画,并且分别通过各个按键监听进行动画的切换,然后制作了一些游戏基础要素(比如说血条、对游戏内各种实体的相互判定、简单的UI和滚动背景等),简单的完成了一个游戏所需要的要素。总的来说,完成了游戏的基本要素,可以通过拓展和更新来增加游戏的内容了。同时也发现了自己在各种地方的不足,特别是代码熟悉程度,导致不少时间都在读网上找的相关代码,然后引入自己的游戏进行修改和引用。按照毕业设计的成果来看,基本上完成了课题中制作动画和2D横版游戏的内容。游戏开发工具及开发语言介绍2.1Unity3D引擎简介本次论文研究的是Unity引擎和Anima2D组件,Unity3D是由UnityTechnologies开发的一个让玩家轻松创建诸如\t"/item/Unity3D/_blank"三维视频游戏、建筑可视化、实时\t"/item/Unity3D/_blank"三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业\t"/item/Unity3D/_blank"游戏引擎。Unity类似于Director,Blendergameengine,Virtools或TorqueGameBuilder等利用交互的图型化\t"/item/Unity3D/_blank"开发环境为首要方式的软件。其编辑器可运行在Windows、Linux(目前仅支持Ubuntu和Centos发行版)、MacOSX下,可发布游戏至\t"/item/Unity3D/_blank"Windows、\t"/item/Unity3D/_blank"Mac、\t"/item/Unity3D/_blank"Wii、\t"/item/Unity3D/_blank"iPhone、\t"/item/Unity3D/_blank"WebGL(需要\t"/item/Unity3D/_blank"HTML5)、Windowsphone8和Android平台。也可以利用Unitywebplayer\t"/item/Unity3D/_blank"插件发布网页游戏,支持Mac和Windows的网页浏览。它的\t"/item/Unity3D/_blank"网页播放器也被Mac所支持。“百度百科[1]”而在使用Unity5.X时,Anima2D是最先进且完整的2D骨骼动画解决方案。使用Anima2D,你将可以在Unity中为你的游戏创建2D骨骼的人物和背景。Anima2D扩展Unity通过,添加2D骨骼层级结构(2DBoneHierarchies),一个强大的可完全控制网格生成的SpriteMesh编辑器和2D反向力学(2DInverseKinematics)。Anima2D严格按工作流开发,且无缝集成到Unity。“Anima2D官方文档[2]”2.2
C#开发语言C#是一种安全的、稳定的、简单的、优雅的,由C和\t"/item/c%23/_blank"C++衍生出来的\t"/item/c%23/_blank"面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有\t"/item/c%23/_blank"宏以及不允许多重继承)。C#综合了\t"/item/c%23/_blank"VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向\t"/item/c%23/_blank"组件编程的支持成为\t"/item/c%23/_blank".NET开发的首选语言。”百度百科[3]”总的来说C#是一种基于C和C++的一种面向对象的编程语言,集合了C和C++优点,简洁紧凑,灵活方便,有着丰富的运算符和数据类型,表达力和表达方式都有相当的优势,代码的可读性和可重用性好,也无需复杂的编程环境,最重要的是可以直接访问物理地址并对硬件进行操作,程序效率高,可以移植到各种不同的系统上进行代码的编写和运行,大部分的系统框架也支持该编程语言。2.3
Visual
Studio编程软件简介VisualStudio集成开发环境是一种创新启动板,可用于编辑、调试并生成代码,然后发布应用。集成开发环境(IDE)是一个功能丰富的程序,可用于软件开发的许多方面。除了大多数IDE提供的标准编辑器和调试器之外,VisualStudio还包括编译器、代码完成工具、图形设计器和许多其他功能,以简化软件开发过程。“[4]”VisualStudio(以下简称VS)是一款由微软官方发布的编程软件,它支持C类、BasicL类、Java类等多种编程语言,并且在编程窗口中拥有多种功能工具直观的满足使用者的一定程度上的编程需求,能够在输入相关代码的时候提示或直接自动编写相关代码,并且拥有强大的语意检查和错误检查功能,能够随时进行运行测试,支持多种微软系统,并且能把代码生成/打包、发布成exe文件进行直接使用,能够极大程度上提高使用者的编程效率。游戏需求分析及概要设计本次毕业设计主要是制作一款2D横版游戏,作为一个最基本的横版2D游戏,需要一个主角供玩家进行操作,而主角需要在玩家按下按键时能够进行对应的各种运动和动作(动画)的演出,也需要一个2D背景供主角在上面进行游戏,也需要敌人,主角受到敌人攻击后要做出受击动作和变动相关数值,数值变化到一定之后会有对应的判定,主角也应该能够做出攻击动作,敌人在受到攻击动作也要做出对应反应。除此之外还需要UI进行开始游戏和游戏开始后显示出如生命值等角色属性的UI、游戏结束后会自动弹出相关UI,点击UI上的相应按钮可以执行相应的功能。在实际毕业设计作品中,我使用了Unity的assetstore上的资源,包括角色和背景,还有相关组件,动画则是由自己制作,背景使用了两张图片作为背景,使用代码进行背景的移动和复用,主角的动作通过Unity自带的动画机中的参数判定和代码的按键监听结合自己制作的骨骼动画进行制作,敌人采用了制作成预制体的cube,会在一个范围内进行随机生成,飞向主角,碰撞地面后进行弹跳,碰撞主角后主角做出指定动作并且减少生命值,生命值归零后主角会停下来,弹出重启界面,按下重启按钮可以复活并进行游戏,主角按下攻击键后能唤醒手上的触发器,cube进入触发器之后会产生相应的效果,在开始界面的开始UI中,按下开始能唤醒主角、敌人生成器、和角色属性,开始UI和重启UI中的退出按钮,能正常关闭程序,角色属性UI中有角色的生命值,能够正常反馈角色的相关信息的变动。游戏详细设计及实现4.1准备工作在使用Unity引擎制作游戏之前,你可以先去Unity官方网站直接下载Unity或者通过UnityHub进行引擎的下载,在UnityHub下载的时候能够自行选择自己需要的组件并且自动进行添加,在下载完成之后,需要进行注册和登录,然后进行激活码的验证才能够使用,不过个人版和资金紧张的公司则可以免费使用个人版的Unity引擎进行游戏制作。在使用Unity引擎进行游戏的时候,往往会需要自己写一些代码进行支持,所以需要一些代码编写工具的,可以在组件选择的时候勾选VisualStudio(我勾选了之后下载完成在Unity引擎内选择相关设置修改变成软件的时候没有VisualStudio选项,应该只是个支持VisualStudio的组件)或者自行下载其他编码工具进行编码。在下载完成之后,通过UnityHub(需要Unity账号登录和激活码验证才能继续,而且个人版的验证会相当频繁)或者直接打开Unity,就可以进入Unity界面了。之后在Edit菜单选择Preference里面在Extemaltools修改ExtemalScriptEditor选项更换编程环境,这样就完成Unity部分的准备工作了,而Anima2D组件和其他资源则是在windows的assetstore里面进行导入,导入完成后,所有准备工作就完成了。4.2游戏的具体设计和实现及具体操作和思路首先先从assetstore上下载几个所需的素材,不过特别要注意的是,要用到Anima2D制作骨骼动画的角色,推荐找各个关节都分开绘制的并且清晰的独立的分布在png各个角落的素材资源,最好是一些作者已经用spritepacker处理过的资源,因为被spritepacker处理过的图片在之后很方便的进行切割,然后直接放到场景中进行操作。在找到符合条件的资源后进行导入,然后就可以开始我们的动画制作了。首先先选中资源里面的刚刚提到的spritepacker处理过的带有角色身上的各种部分的图片(比起一般的png会多出SpriteMode等选项),然后点击右边界面的SpriteEditor,在新出来的窗口内进行所需部件的确认、调整各个部件的选取区域,确保每一个有需要的部件都被完整框选,调整好部件内的蓝色圆点(在切割好之后会以该圆点作为各种调整的中心),然后选择上方工具栏的Slice选择好里面的各项参数之后,点击Slice,再点击Apply完成图片的切割。随后右键该图片,然后选中create-Anima2D-SpriteMesh,一小会之后,就会发现,它已经把刚刚切好的图片按照刚刚进行的切割分割成各个部件了,随后把各个部件放到场景中进行组装,组装的时候能够发现比起一般的实体,会自动增加了一个叫SpriteMeshInstance的组件,在那里,按照透视顺序修改好OrderinLayer(数值高的会把数值低的覆盖住)的参数,在场景里面进行角色的组装。组装完成后,现在的角色还是不能动的,就算拖动部件也只能做到最基本的平移旋转操作,接下来就在场景中,选中create-2DObject之后会发现比起导入Anima2D之前多了几个新的选项,这里选择bone,然后把新建的bone移动到素材需要进行运动的地方调整好长度,铺好骨骼(大量的骨骼甚至能做出非常柔软的效果,如头发飘动、衣服摆动等,不过相对的也更消耗性能),注意的是直接在旧的骨骼上创建新的骨骼,新的骨骼会在旧的骨骼末端出现,并且成为父子物体的关系,拖动新的骨骼(子骨骼)会影响旧的关节的大小和旋转,而通过这样在同一骨骼上创建第二个或者直接的话则会在另一个地方创建骨骼,用这种方式创建子骨骼,并不会形成子骨骼影响父骨骼的关系(把其它骨骼拖到旧的骨骼借此成为父子关系也是一样,但是会和普通父子关系物体一样,会跟随父骨骼进行旋转、位移等,在这种关系的两个骨骼,会有个半透明类似骨骼的联系标识连接着),在铺好骨骼之后,要注意骨骼暂时还是没有绑定到实体上的,还是不会互相影响的,这个时候尽可能不要太大幅度的调整骨骼位置。在上述操作完成后,就可以准备进行蒙皮和骨骼绑定操作了,在上方选中window,会发现多了个Anima2D的选项,选中之后选择SpriteMeshEditor,然后选中场景或project里面的身体部件,刚刚的png就会投到新出现的SpriteMeshEditor窗口上,然后在该窗口中只有刚刚选中的部件是高亮的,选中场景中铺上骨骼的部件的时候,还会注意到SpriteMeshInstance有个添加骨骼的参数,直接把Hierarchy里面的骨骼往该参数上拖动,就会发现参数下方出现了对应的骨骼和其子骨骼、而在SpriteMeshEditor窗口也能看见骨骼铺到选中的对应物体上了。之后删除SpriteMeshEditor中不需要的骨骼,然后回到SpriteMeshEditor中就会剩下留下的骨骼,之后和刚刚一样,确保把部件周围的选择框完整框柱部件的同时不要框到其他部件,值得注意的是,上面的东西除了SpriteMesh窗口的选择框和蓝色圆点以外还多了一圈青色的点,选中Slice然后调整里面的三个参数(分别影响点的个数,点和模型的贴合度、还有分布在内部的点的比例),然后点击Slice下的apply,就会发现蓝点会根据那三个参数发生变化,随后再次点击Slice关闭Slice窗口,点击Bind就会发现上面的骨骼发生了变色,这时候选中右下角的Overlay,整个部件都会变成其他颜色(多个骨骼的时候会出现很多颜色),这个颜色代表着当前部分的对应的颜色的骨骼的权重,而且细心点会发现,那些颜色都是根据刚刚Slice加上去的点进行分布的(也就是蒙皮),勾选右下角的pies会把点放大,详细显示出每个点的权重分布情况,这里根据所需调节好各个点的骨骼权重(不需要每一个点去修改可以直接点击右下角的Auto自动进行调整然后有需要的话再进行微调,选中骨骼之后左下角的界面可以修改骨骼对应的颜色和名字,选中点则是可以更加细致的修改骨骼对选中点的权重),完成之后,点击右上方的apply完成蒙皮和骨骼绑定。这时候,回到Unity的主界面,会发现不能通过移动部件来对其进行移动了,但是却可以通过拖动骨骼影响到部件,这时证明骨骼绑定已经成功了,不过具体是不是你想要那种效果,就得多次尝试了,假若绑定错误或者效果不好,则需要回到SpriteMeshEditor点击Unbind和Apply进行骨骼的解绑,之后再进行修改(修改越早越好,绑定多了之后发现某个骨骼没绑好要修改往往是要全部都解绑然后再去逐个去微调的,非常的繁琐)。到这里,我们Anima2D的基础工作就完成了,虽然看起来非常的简单,但是考虑到各种因素(如对蒙皮和骨骼权重的理解和调整,还有铺设骨骼时候对物体怎么动、要动哪里的想象和尝试),会让这些工作重复不少次,也很容易绑到最后发现有个地方动得不尽人意然后前功尽弃,所以实际处理起来还是挺花时间的。而且,骨骼动画是通过图片的局部变形来实现动画效果的,所以在单张素材上想要做一些细节动画的话,经过实际的尝试之后发现非常的困难,往往会让不想发生变化的地方也产生了变形,权重修改也要变得非常考验人的耐心和对骨骼动画的理解,所以对素材的处理非常的重要,要把需要的动的部位单独分出来。而在铺设骨骼的时候,建议修改好各个骨骼的名称,并且用角色腰部或者腹部的骨骼来当整个角色骨骼的最高级的父骨骼,设置好每一个骨骼的父子关系非常重要。给图片铺设好骨骼之后,接下来就是让图片做出动画,相比传统的通过整个图片进行差分的切换来说,骨骼动画则是通过让原图变形而使图片动起来,除去这个插件和Unity本身的制作难度和工程量来说,通过制作骨骼动画远远要比游戏制作人去找一套带有差分又合适,或者是另外开始找美工去进行角色和各种动作差分的绘制要方便得多。通过选中Unity上方的window,打开animation窗口,然后利用animation的录制动画功能给图片制作动画,通过上方的时间轴和移动骨骼给角色调整姿势,通过不断地调整和播放,使得动画尽可能的看起来流畅、并且符合自己的想法,不过由于我的技术和自己本身也不是美工这一专业的,对人体和动作的理解不够透彻,所以自己做的动画并不好看。在制作动画的部分,Anima2D还有其他的组件,比如说IK反动力学组件,可以直接在想要使用该功能的骨骼上create,IKCCD是泛用型比较广的反动力学组件,而IKLimb则是更适合人体使用,他们都会通过移动IK组件然后在不使骨骼变形的前提下,进行反过来计算骨骼移动、旋转,更加直观、简单的调整和制作角色的制作,而另一个Control组件则是最好是绑定在整个骨骼的父骨骼(也就是整套骨骼的重心上),通过配合IK组件移动Control可以十分方便的做出很多改变身体姿势的动作和动画,还可以在骨骼的Inspector窗口添加PoseManager,随时记录和读取骨骼的动作,要是熟练使用的话,这几个功能会让游戏角色动画制作变得非常方便。除此之外,Anima2D还有OnionSkin和BakeAnimation功能,一个是在骨骼动画制作时可以直观的通过不同颜色来表示上一帧的动作,而另一个则是通过烘培动画把起始到结束的所有动画都添加关键帧以减少性能的损耗。在通过不断的重复和调试之后,完成了一个2D横版游戏基本上都有的待机-走路-跑步-攻击-跳跃-受击-死亡动作之后,Anima2D和Animator的部分基本上完成了。随后就直接把其它游戏物体拖到界面上,一个横版2D游戏的雏形就出现了,虽然从整个场景来看,背景只有寥寥几张图片。然后给背景添加相关代码,在一定范围内,让两张背景根据游戏时间乘以一个背景的移动速度的推移每次移动距离,达到最大之后重新从零开始,这样每当图片运行这行代码的时候,就仿佛在前进了,而且只要最大值等同于图片的大小,这张背景就相当于无限长了(实际上就是两张图片在移动到一定位置的时候返回初始位置重新进行移动,数值设置得准确的话确实是看不出来两张图只是在一直在重复移动而已)。在制作好这个简单的背景之后,就开始让不同按钮进行让角色做出不同的动作了,这里是通过标准的键盘按键监听来实现,事先在Animator动画机里面设置好参数,然后给各个动画的切换根据参数定好条件,接下来就是用代码实现按键按下和放开的监听修改对应参数,符合动画切换的条件,然后对动画进行切换,修改每个的话的退出时间和是否需要过渡以及过渡时间(过渡时间没调好会导致做出不协调的动作,也可能导致动画的延迟或者不播放),这样之后,一个会被玩家键盘所控制的主角就完成了。接下来就是要制造一个简单的地板,这里就直接使用了plane在主角的脚下进行一定角度的旋转然后把大小拉的尽可能包括整个背景,这样一个地面就完成了,这里实际上可以在背景上多加点背景装饰,分别在靠近镜头一侧、在角色和背景之间的一侧添加一些景物,然后随着背景推进一起移动,也可以加个移动光源模拟一个昼夜变换的效果。然后就要给地板加上2D碰撞器了,同时也要给角色加上2D刚体的和一个2D碰撞器(因为2D碰撞器不会随着添加2D刚体自动添加),然后角色和地面就会模拟一个重力和碰撞的效果,锁定好角色刚体的旋转,防止在跳跃的时候发生旋转,然后给跳跃动作监听的代码增加一条按下的时候给角色一个向上的力,设置好力的大小,使得等同于跳跃动作的时间(或者也可以缩短跳跃-其他动作的切换时间),再加上按下的时候使isjump变为true,检测2D刚体和带有Ground的标签(tag)的2D碰撞体的同时使isjump变为false,这样进行设计的话,可以避免玩家在不处于地面上却还能进行跳跃的情况,并且能为后续增加浮空动作提供不少便利。这样,角色就能根据按键做出走和跳的动作了,虽然只是背景在动,并不是真正意义上的走,然后这里就出现一个问题,如何把慢走的动作和站立的动作加进去同时又让背景产生相应的变化,这又是一个难题,因为我的滚动背景用的并不是慢慢的推移过去的,而是每次都是从开始的位置加一个随着时间变大的数而制作的,这样的话,直接调整参数大小的话,虽然是会让背景板慢下来,但是调整前和调整后位置会完全不同,所以这里就用了让Time.timeScale变成原来的一般,但是让Animation的播放速度加快一倍的方式进行弥补了,可是站立还是没办法找到办法解决,记录当前背景位置后,强行把背景位置等同于当前位置,并且不运行背景的位置变动计算,通过这样做,播放对应的站立动画,并且把图片固定在原地(一松开按键后图片很可能会移动到不同的地方)。之后就要进行敌人的制作,这里使用的敌人是一个会弹跳的cube,利用Random.Range设定一个随机变动的高度,然后让maker搭载这个脚本,配合时间闸,每隔一定时间在某个位置的随机高度生成预制体flybox,然后再给flybox设置好一个飞向主角的初始的力、配置好2D刚体和2D碰撞器之后、通过tag的辨别,碰撞与地面碰撞模拟弹跳效果,还有碰撞主角让自身运行destory(this)命令。然后给主角加上碰撞flybox的标签后behit参数变为1,播放受击动画的代码和播放结束后让behit变回0的代码,这样敌人生成和主角受击判定就完成了。然后就进行UI的制作。这里需要的UI是开始和退出的按钮,在createUI里面的Button之后会自动生成一张画布,因为我制作的游戏比较简单,主UI和游戏的背景用的是同一张,所以这里就不用制作新的Scene,和利用SceneManagement包来进行Scence进行场景切换了,画布类型选择跟随相机和固定大小,然后和游戏场景的主摄像机在画布中的参数绑定起来,这样,设置在画布内的UI按钮也可以直接放置在摄像机的范围内,拖动相机的时候也可以拖着画布和UI一起移动了(当然也可以用Overlay进行制作,那样的话无论相机在哪都会优先显示UI).制作好开始和退出按钮之后,在下方设置好点击事件,在开始按钮的点击事件参数中设置好游戏中个个物体的激活还有菜单的隐藏事件,而退出则是写好一个退出程序的代码Application.Quit()放到空对象上,然后点击按钮后运行该段代码。制作好简单的主UI之后,就该制作游戏内的角色属性面板了,这里只进行了血条的制作,使用了三个空图片,然后通过image的上色完成了白色、红色、暗红色三种不同贴图,让白色放到最左边,暗红色的当做血槽,红色的当做现有血量,这样一条简单的血条就完成了,然后调整一下填充方向,使得调整(减少)FillAmount的时候会向左进行缩进就完成了,然后利用代码,让flybox碰到角色的2D碰撞体的时候填充进行减法运算,填充为0的时候则对动画机上的参数满足死亡动画的条件,这样一条简单的可以根据相关参数的血条完成了。接着就再次用UI创建一个again和退出的button,按下again的时候就运行相关空物体的代码让填充变回1,参数重新满足从死亡变回默认状态。(不过这样依然还是不太好,按下again之后会从地上爬起来,并不是我想要的效果,直接把该场景时间重置会有更好的效果)。接下来就要给主角添加一些其他的系统,在主角的武器的骨骼上生成一个空物体,附上2D碰撞器,勾选触发器选项后,调整到合适大小,就完成了(绑到图片上则会因为不会跟着骨骼进行运动的同时因为触发器碰到物体的刚体或碰撞器是不会触发物理效果而会直接掉到屏幕下方),利用按键监听让这个攻击判定框只在按下J的时候出现,利用动画播放监听来让播放结束后让动画机参数归零(这里若是调成大于1,即让动画播放完再让参数归零则会因为Unity的Animation的动画过渡功能无法触发,需要微调数值去试到适合为止),然后给flybox加上碰到该标签的触发器自动给一个比较大的力让其飞走,并且触发一次粒子效果,这样攻击就完成了。(目前没有找到能检测触发器去碰撞其他碰撞器的代码,其实做的时候试图做了记分系统,但是因为flybox是预制体,而预制体身上的代码似乎也只能是预制体,通过这种方式修改记分板的代码只会改到文件中的代码而已,并不能对场景中的计分板进行修改,所以没有实现计分板功能)。不过在之后几天,经过老师的引导和指点,增加了新的敌人,采用了分别使用了受击框和攻击框,使该敌人只能在跳跃的时候命中,不过在根据老师的建议修正了下比例之后,在石头人姿势稍低的时候在正确的时机进行攻击也能命中。并且给武器的攻击框增加了相关代码,从原来敌人受击加分这个思路改变成了击中目标加分,而武器的攻击框则是常驻在游戏场景上,故没有之前没法加分的问题了,而且之前的预制体获得场景物体也有办法解决了,使用了Unity中的Find命令进行游戏物体的搜索和获取,不过相对来说会更消耗性能,故还是使用了攻击敌人加分这个设定,并且使用粒子效果制作了简单的攻击特效,不过具体是放在武器上还是敌人上比较好还有待研究,增加了一个可以暂时走上去的地形,可以暂时躲避下方的敌人和盒子,也修改了下跳跃的逻辑代码,现在站到地面上的时候会切换回默认姿势而不是完成跳跃动作才返回,原本由于攻击动画速度较慢,也进行了小许优化,增加了小许的动画速度,同时也制作了一个跟随主角移动的小球,上面注释了几个不同的根据主角和小球距离的条件,稍作修改,加上一些素材导入和动画制作,就可以为后续增加的怪物或者需要类似判定的游戏物体套用上这个小球里的脚本了(但是由于不太符合目前),之后也增加一个触碰到角色可以给角色系统中的血条进行回复的游戏物体,为了避免之前遇到的问题,也是把相关代码写到了主角的碰撞体上进行相关数值的增加,而且由于碰撞原因,在足够近的情况下攻击到对应敌人的受击框会产生碰撞器的重复判定,所以增加了攻击命中目标后,关闭目标的碰撞器,借此来优化了该问题,这个优化同时也对游戏的难度进行了些调整,故也缩小了主角的攻击框。这款游戏的大体就完成了,除了以上主要系统还加上了一些其他功能的添加,比如说flybox击中主角后因为两个都有刚体,质量都差不多,flybox的力相对来说非常大,所以会让主角产生位移,写了个事先记录好的开始位置,在HP没有归零的时候会根据距离回到开始位置的代码、还做了一个另不同速度不同位置(层级)用来遮挡视线的背景,一个纯粹用Anima2D的功能进行制作的带动画但是没有实装到摄像头中的石头人(没有在骨骼动画制作的时候对骨骼进行单独的修改,而是只使用了IK组件和Control组件进行动画的制作),还有一个单纯用于增加背景亮度的定向光(实际可用来做昼夜变换,但是由于我对于2D实体的光线调整研究得不太充足,创建的定向光并没有对主角产生影响)。游戏测试游戏画面游戏开始界面,点击start按钮可以进入游戏,Exit则会关闭程序如图5-1所示图5-1开始界面图5-2游戏内界面每隔一段时间会生成能够站上去的平台,可以回避大部分攻击,如5-3所示图5-3能够暂时回避敌人的平台打中方块分数+1,并且击飞方块,取消方块的刚体和碰撞,打中石头人上半身则取消石头人的攻击框和碰撞如图5-4、5-5、5-6所示图5-4攻击击中方块图5-5攻击石头人的下方不能击倒石头人图5-6攻击框和收击框不同的敌人血量归零后出现失败界面,如5-7所示5-7失败界面,点击Again可以回满血复活,并且重新激活刷怪物体除此之外还有能够供主角回复血量的物体,如图5-8、5-9所示图5-8回血胶囊体,主角碰到了可以回血,图5-9回血效果,总结在本次的毕业设计中,我通过使用Unity引擎和Anima2D组件进行了游戏的制作,证实了该游戏引擎可以让我非常方便而简易的进行游戏的制作,同时运用到了在该学期学习到的相关知识,虽然不足的地方很多,但是收获的东西也不少,同时也在一定程度上体现出一款游戏制作引擎能给予一个业余爱好者制作游戏有多大的帮助,而类似Anima2D这样的组件则是让制作的方式变得更加多样化和简便化,也增添了不少趣味性,Unity自带的各种各样的工具则是节省了使用者制作时候的各种繁琐的代码流程,比如说动画机,原本则是需要大量的代码进行参数的设置和动画的设定和播放的,还有制作时候的直观性和可视化操作,从创建物体,到自己编写一些简单的代码让物体动起来,几乎可以说达到一边进行游戏制作一边检查制作的程度了,创建出来的每个物体也会自带一部分所需的组件或者脚本,不再需要进去对应参数的代码进行代码的查找和修改,而是可以通过界面相当直观的对对应参数做出相应的调整,对于自己编写的代码,只需要用上相关的包里面的代码,在赋予给场景中的物体或资源中的预制体之后,就会直接出现在对应的脚本组件中出现对于的参数修改选项,就显得非常的方便和直观,对于初学者或者不太擅长代码的使用者来说,比起只能通过代码进行修改,这种方式就显得非常的方便、清楚了。而本次使用的官方组件Anima2D则是在角色动画制作上帮了不少忙,可以在制作角色动画的时候不用或者少用差分进行角色制作,只需要分好每个部件,铺设好骨骼,绑定好之后,利用相对应的组件,就能进行动画制作了,虽然还是需要使用者对于相关动作的一定研究和不断的调整才能有心仪的动画效果,不过比起绘制好几个差分来说,对于非绘画的或者绘画不熟练的使用者来说确实是一种很好的替代方式。不过通过本次毕业设计,我认识到了自己的学习还是不够踏实,在代码方面比较生疏,感觉自己在制作的时候有一大部分的时间是在寻找相关代码和解读代码的意思,然后才进行调整和修改到自己的制作当中的,而且其中可能包括了不少的代码重复和多余,代码的条理也是相当的混乱,思考时候的思路也不太清晰,比较混乱,而且在美工上的处理和制作也并不理想,虽说自己并不是那个专业的,但是感觉还是太简陋了,对于人体的动作也不是很熟悉,骨骼绑定也处理得不好,动画也有违和感,循环的时候并不是完全的对称,导致播放的时候出现不协调的效果,动画机上的处理也不太熟练,对于动画过渡和退出的理解不够深刻,而在功能的实现上也遇到了不少挫折,在自己后续的测试中也发现了自己某些功能的实现方式也是不太理想,比如说重新开始功能,应该用新场景制作然后把time重置成开始,效果会比现在好得多,而某些动画退出的时候过渡时间也把握得不太好,有待改善,动作之间的退出判定也不太如意,游戏内容的容量也有待提高,甚至还有未完成、无法完成的部分。不过在某种程度上,这也证明了现在即使是和我一样的初学者,也能通过一些游戏引擎和组件组合起来进行一些较为简单的游戏制作了,他们不用去专门学习大量的代码知识、进行大量的编程训练,就可以通过各种各样的游戏引擎和组件把自己内心中的想法,内心中的游戏制作出来,对比起当年人们对于游戏、软件的制作往往是遥不可及的程度,现在也变成了只要肯花时间去琢磨一下,就可以进行简单的制作了,这不仅仅让游戏制作者制作游戏变得简便,而且在降低门槛增加趣味性吸引了不少人进行游戏制作的同时,让不少人感兴趣去学习相对应的课程,让游戏的发展变得比以前快了不少,各种各样的独立作品在不同的平台发售,让人眼前一亮的有趣、创新的玩法,让人感触良多的深刻、沉思的游戏剧情,还有多种多样、充满惊喜的世界观,不仅仅在某些大作中出现了,独立游戏中也会不时传出各种各样的神作,感人肺腑的剧情,还有吸引人心的玩法和世界,凭借着相比之下更加低的价格更容易让人去购买并且游玩。所以,随着游戏引擎的出现和发展,还有相关组件的丰富和增加,使得游戏制作的门槛降低,也在另一方面推动着游戏制作行业的发展,让人们能把自己心中所想的游戏表现出来,虽然我对Unity引擎可能只是了解了点皮毛而已,但是从这已经可以看出来,游戏制作引擎的确是可以让游戏的制作变得简易,让游戏变得丰富,让游戏行业的发展变得更加快速了。参考文献[1]\o"查看此用户资料"\t"/item/Unity3D/_blank"爱笑的在的等编辑者.百度百科Unity3D[Z],/item/Unity3D/3064002?fromtitle=Unity&fromid=10793&fr=aladdin,最近更新时间2020-04[2]游戏仁,Anima2D官方中文文档(B站首发)[Z],/read/cv155943,2018-1[3]\o"查看此用户资料"\t"/item/c%23/_blank"H去90等编辑者,百度百科c#[Z],/item/c%23/195147?fr=aladdin,最新更新时间2020-03[4]olprod,欢迎使用VisualStudioIDE[Z],/zh-cn/visualstudio/get-started/visual-studio-ide?view=vs-2017,2019/03[5]UnityTechnologies.unity官方案例精讲[M].中国铁道出版社,2015.[6]刘佳力基于Unity3D的儿童安全教育游戏的研究与实现[D]四川师范大学,2015[7]段薛孔,李潼,朱旭东,吴兰Unity3D游戏场景中人物角色动画的设计.安徽:电脑知识与技术期刊,2019.15-9[8]程彬彬,王明鑫,商楠浅谈游戏开发平台Unity3D的应用与发展前景.辽宁沈阳:沈阳理工大学,110159[9]李兵川基于Unity3D游戏开发流程分析重庆重庆科创职业学院.402160[10]UnityTechnology.Unity4x从入门]到精通[M]中铁出版社。2013[11]王同娟基于Unity3D的教育游戏开发研究[J]电脑编程技巧与维护,2018(1):7.[12]杜文罄科普游戏兴奋点研究及其对科学教育的启示[D]西南大学2018[13]吴亚峰,于复兴.UnisD游戏开发技术详解与典型案例北京人民邮电出版社,2000:56-59[14]程明智.Unity游戏开发技术.北京:国防工业出版社,2012:279-318致谢首先我要感谢在那个学期给我上了Unity选修课程的老师,让我有机会接触和了解到Unity游戏引擎,并且教会了我们最基本最简单的游戏制作方式,从而让我有机会进行本次的毕业设计和毕业论文制作,虽然本次使用的组件和代码大部分都是通过其他方式了解到的,但是没有老师教到的基础我是完全看不懂和没办法进行理解和操作的,甚至可能根本不可能知道能够用Unity进行游戏制作。其次我要感谢我的论文指导老师,能在百忙之中对我的毕业论文进行检查,并且指出需要修改的地方让我及时进行修改。我的毕业论文和毕业设计仍有不少不足的地方,通过老师的不断地进行指导,我尝试着进行着修改,从中我重温、并且学习到了不少知识,也对最初进行制作时候的思路进行了优化和修改,使得比起第一次完成的时候实现了不少系统,这使我终生受益,希望这次的不足和遗憾能成为我日后进步的动力。
电脑故障检测卡代码表
1、特殊代码"00"和"ff"及其它起始码有三种情况出现:
①已由一系列其它代码之后再出现:"00"或"ff",则主板ok。
②如果将cmos中设置无错误,则不严重的故障不会影响bios自检的继续,而最终出现"00"或"ff"。
③一开机就出现"00"或"ff"或其它起始代码并且不变化则为主板没有运行起来。
2、本表是按代码值从小到大排序,卡中出码顺序不定。
3、未定义的代码表中未列出。
4、对于不同bios(常用ami、award、phoenix)用同一代码代表的意义不同,因此应弄清您所检测的电脑是属于哪一种类型的bios,您可查阅您的电脑使用手册,或从主板上的bios芯片上直接查看,也可以在启动屏幕时直接看到。
5、有少数主板的pci槽只有一部分代码出现,但isa槽有完整自检代码输出。且目前已发现有极个别原装机主板的isa槽无代码输出,而pci槽则有完整代码输出,故建议您在查看代码不成功时,将本双槽卡换到另一种插槽试一下。另外,同一块主板的不同pci槽,有的槽有完整代码送出,如dell810主板只有靠近cpu的一个pci槽有完整代码显示,一直变化到"00"或"ff",而其它pci槽走到"38"后则不继续变化。
6、复位信号所需时间isa与pci不一定同步,故有可能isa开始出代码,但pci的复位灯还不熄,故pci代码停要起始代码上。
代码对照表
00.已显示系统的配置;即将控制INI19引导装入。
01处理器测试1,处理器状态核实,如果测试失败,循环是无限的。处理器寄存器的测试即将开始,不可屏蔽中断即将停用。CPU寄存器测试正在进行或者失败。
02确定诊断的类型(正常或者制造)。如果键盘缓冲器含有数据就会失效。停用不可屏蔽中断;通过延迟开始。CMOS写入/读出正在进行或者失灵。
03清除8042键盘控制器,发出TESTKBRD命令(AAH)通电延迟已完成。ROMBIOS检查部件正在进行或失灵。
04使8042键盘控制器复位,核实TESTKBRD。键盘控制器软复位/通电测试。可编程间隔计时器的测试正在进行或失灵。
05如果不断重复制造测试1至5,可获得8042控制状态。已确定软复位/通电;即将启动ROM。DMA初如准备正在进行或者失灵。
06使电路片作初始准备,停用视频、奇偶性、DMA电路片,以及清除DMA电路片,所有页面寄存器和CMOS停机字节。已启动ROM计算ROMBIOS检查总和,以及检查键盘缓冲器是否清除。DMA初始页面寄存器读/写测试正在进行或失灵。
07处理器测试2,核实CPU寄存器的工作。ROMBIOS检查总和正常,键盘缓冲器已清除,向键盘发出BAT(基本保证测试)命令。.
08使CMOS计时器作初始准备,正常的更新计时器的循环。已向键盘发出BAT命令,即将写入BAT命令。RAM更新检验正在进行或失灵。
09EPROM检查总和且必须等于零才通过。核实键盘的基本保证测试,接着核实键盘命令字节。第一个64KRAM测试正在进行。
0A使视频接口作初始准备。发出键盘命令字节代码,即将写入命令字节数据。第一个64KRAM芯片或数据线失灵,移位。
0B测试8254通道0。写入键盘控制器命令字节,即将发出引脚23和24的封锁/解锁命令。第一个64KRAM奇/偶逻辑失灵。
0C测试8254通道1。键盘控制器引脚23、24已封锁/解锁;已发出NOP命令。第一个64KRAN的地址线故障。
0D1、检查CPU速度是否与系统时钟相匹配。2、检查控制芯片已编程值是否符合初设置。3、视频通道测试,如果失败,则鸣喇叭。已处理NOP命令;接着测试CMOS停开寄存器。第一个64KRAM的奇偶性失灵
0E测试CMOS停机字节。CMOS停开寄存器读/写测试;将计算CMOS检查总和。初始化输入/输出端口地址。
0F测试扩展的CMOS。已计算CMOS检查总和写入诊断字节;CMOS开始初始准备。.
10测试DMA通道0。CMOS已作初始准备,CMOS状态寄存器即将为日期和时间作初始准备。第一个64KRAM第0位故障。
11测试DMA通道1。CMOS状态寄存器已作初始准备,即将停用DMA和中断控制器。第一个64DKRAM第1位故障。
12测试DMA页面寄存器。停用DMA控制器1以及中断控制器1和2;即将视频显示器并使端口B作初始准备。第一个64DKRAM第2位故障。
13测试8741键盘控制器接口。视频显示器已停用,端口B已作初始准备;即将开始电路片初始化/存储器自动检测。第一个64DKRAM第3位故障。
14测试存储器更新触发电路。电路片初始化/存储器处自动检测结束;8254计时器测试即将开始。第一个64DKRAM第4位故障。
15测试开头64K的系统存储器。第2通道计时器测试了一半;8254第2通道计时器即将完成测试。第一个64DKRAM第5位故障。
16建立8259所用的中断矢量表。第2通道计时器测试结束;8254第1通道计时器即将完成测试。第一个64DKRAM第6位故障。
17调准视频输入/输出工作,若装有视频BIOS则启用。第1通道计时器测试结束;8254第0通道计时器即将完成测试。第一个64DKRAM第7位故障。
18测试视频存储器,如果安装选用的视频BIOS通过,由可绕过。第0通道计时器测试结束;即将开始更新存储器。第一个64DKRAM第8位故障。
19测试第1通道的中断控制器(8259)屏蔽位。已开始更新存储器,接着将完成存储器的更新。第一个64DKRAM第9位故障。
1A测试第2通道的中断控制器(8259)屏蔽位。正在触发存储器更新线路,即将检查15微秒通/断时间。第一个64DKRAM第10位故障。
1B测试CMOS电池电平。完成存储器更新时间30微秒测试;即将开始基本的64K存储器测试。第一个64DKRAM第11位故障。
1C测试CMOS检查总和。.第一个64DKRAM第12位故障。
1D调定CMOS配置。.第一个64DKRAM第13位故障。
1E测定系统存储器的大小,并且把它和CMOS值比较。.第一个64DKRAM第14位故障。
1F测试64K存储器至最高640K。.第一个64DKRAM第15位故障。
20测量固定的8259中断位。开始基本的64K存储器测试;即将测试地址线。从属DMA寄存器测试正在进行或失灵。
21维持不可屏蔽中断(NMI)位(奇偶性或输入/输出通道的检查)。通过地址线测试;即将触发奇偶性。主DMA寄存器测试正在进行或失灵。
22测试8259的中断功能。结束触发奇偶性;将开始串行数据读/写测试。主中断屏蔽寄存器测试正在进行或失灵。
23测试保护方式8086虚拟方式和8086页面方式。基本的64K串行数据读/写测试正常;即将开始中断矢量初始化之前的任何调节。从属中断屏蔽存器测试正在进行或失灵。
24测定1MB以上的扩展存储器。矢量初始化之前的任何调节完成,即将开始中断矢量的初始准备。设置ES段地址寄存器注册表到内存高端。
25测试除头一个64K之后的所有存储器。完成中断矢量初始准备;将为旋转式断续开始读出8042的输入/输出端口。装入中断矢量正在进行或失灵。
26测试保护方式的例外情况。读出8042的输入/输出端口;即将为旋转式断续开始使全局数据作初始准备。开启A20地址线;使之参入寻址。
27确定超高速缓冲存储器的控制或屏蔽RAM。全1数据初始准备结束;接着将进行中断矢量之后的任何初始准备。键盘控制器测试正在进行或失灵。
28确定超高速缓冲存储器的控制或者特别的8042键盘控制器。完成中断矢量之后的初始准备;即将调定单色方式。CMOS电源故障/检查总和计算正在进行。
29.已调定单色方式,即将调定彩色方式。CMOS配置有效性的检查正在进行。
2A使键盘控制器作初始准备。已调定彩色方式,即将进行ROM测试前的触发奇偶性。置空64K基本内存。
2B使磁碟驱动器和控制器作初始准备。触发奇偶性结束;即将控制任选的视频ROM检查前所需的任何调节。屏幕存储器测试正在进行或失灵。
2C检查串行端口,并使之作初始准备。完成视频ROM控制之前的处理;即将查看任选的视频ROM并加以控制。屏幕初始准备正在进行或失灵。
2D检测并行端口,并使之作初始准备。已完成任选的视频ROM控制,即将进行视频ROM回复控制之后任何其他处理的控制。屏幕回扫测试正在进行或失灵。
2E使硬磁盘驱动器和控制器作初始准备。从视频ROM控制之后的处理复原;如果没有发现EGA/VGA就要进行显示器存储器读/写测试。检测视频ROM正在进行。
2F检测数学协处理器,并使之作初始准备。没发现EGA/VGA;即将开始显示器存储器读/写测试。.
30建立基本内存和扩展内存。通过显示器存储器读/写测试;即将进行扫描检查。认为屏幕是可以工作的。
31检测从C800:0至EFFF:0的选用ROM,并使之作初始准备。显示器存储器读/写测试或扫描检查失败,即将进行另一种显示器存储器读/写测试。单色监视器是可以工作的。
32对主板上COM/LTP/FDD/声音设备等I/O芯片编程使之适合设置值。通过另一种显示器存储器读/写测试;却将进行另一种显示器扫描检查。彩色监视器(40列)是可以工作的。
33.视频显示器检查结束;将开始利用调节开关和实际插卡检验显示器的关型。彩色监视器(80列)是可以工作的。
34.已检验显示器适配器;接着将调定显示方式。计时器滴答声中断测试正在进行或失灵。35.完成调定显示方式;即将检查BIOSROM的数据区。停机测试正在进行或失灵。
36.已检查BIOSROM数据区;即将调定通电信息的游标。门电路中A-20失灵。
37.识别通电信息的游标调定已完成;即将显示通电信息。保护方式中的意外中断。
38.完成显示通电信息;即将读出新的游标位置。RAM测试正在进行或者地址故障>FFFFH。
39.已读出保存游标位置,即将显示引用信息串。.
3A.引用信息串显示结束;即将显示发现信息。间隔计时器通道2测试或失灵。
3B用OPTI电路片(只是486)使辅助超高速缓冲存储器作初始准备。已显示发现<ESC>信息;虚拟方式,存储器测试即将开始。按日计算的日历时钟测试正在进行或失灵。
3C建立允许进入CMOS设置的标志。.串行端口测试正在进行或失灵。
3D初始化键盘/PS2鼠标/PNP设备及总内存节点。.并行端口测试正在进行或失灵。
3E尝试打开L2高速缓存。.数学协处理器测试正在进行或失灵。
40.已开始准备虚拟方式的测试;即将从视频存储器来检验。调整CPU速度,使之与外围时钟精确匹配。
41中断已打开,将初始化数据以便于0:0检测内存变换(中断控制器或内存不良)从视频存储器检验之后复原;即将准备描述符表。系统插件板选择失灵。
42显示窗口进入SETUP。描述符表已准备好;即将进行虚拟方式作存储器测试。扩展CMOSRAM故障。
43若是即插即用BIOS,则串口、并口初始化。进入虚拟方式;即将为诊断方式实现中断。.44.已实现中断(如已接通诊断开关;即将使数据作初始准备以检查存储器在0:0返转。)BIOS中断进行初始化。
45初始化数学协处理器。数据已作初始准备;即将检查存储器在0:0返转以及找出系统存储器的规模。.
46.测试存储器已返回;存储器大小计算完毕,即将写入页面来测试存储器。检查只读存储器ROM版本。
47.即将在扩展的存储器试写页面;即将基本640K存储器写入页面。
48.已将基本存储器写入页面;即将确定1MB以上的存储器。视频检查,CMOS重新配置。
49.找出1BM以下的存储器并检验;即将确定1MB以上的存储器。.
4A.找出1MB以上的存储器并检验;即将检查BIOSROM数据区。进行视频的初始化。
4B.BIOSROM数据区的检验结束,即将检查<ESC>和为软复位清除1MB以上的存储器。.4C.清除1MB以上的存储器(软复位)即将清除1MB以上的存储器.屏蔽视频BIOSROM。.4D。已清除1MB以上的存储器(软复位);将保存存储器的大小。.
4E若检测到有错误;在显示器上显示错误信息,并等待客户按<F1>键继续。开始存储器的测试:(无软复位);即将显示第一个64K存储器的测试。显示版权信息。
4F读写软、硬盘数据,进行DOS引导。开始显示存储器的大小,正在测试存储器将使之更新;将进行串行和随机的存储器测试。.
50将当前BIOS监时区内的CMOS值存到CMOS中。完成1MB以下的存储器测试;即将高速存储器的大小以便再定位和掩蔽。将CPU类型和速度送到屏幕。
51.测试1MB以上的存储器。.
52所有ISA只读存储器ROM进行初始化,最终给PCI分配IRQ号等初始化工作。已完成1MB以上的存储器测试;即将准备回到实址方式。进入键盘检测。
53如果不是即插即用BIOS,则初始化串口、并口和设置时种值。保存CPU寄存器和存储器的大小,将进入实址方式。.
54.成功地开启实址方式;即将复原准备停机时保存的寄存器。扫描“打击键”
55.寄存器已复原,将停用门电路A-20的地址线。.
56.成功地停用A-20的地址线;即将检查BIOSROM数据区。键盘测试结束。
57.BIOSROM数据区检查了一半;继续进行。.
58.BIOSROM的数据区检查结束;将清除发现<ESC>信息。非设置中断测试。
59.已清除<ESC>信息;信息已显示;即将开始DMA和中断控制器的测试。.
5A..显示按“F2”键进行设置。
5B..测试基本内存地址。
5C..测试640K基本内存。
60设置硬盘引导扇区病毒保护功能。通过DMA页面寄存器的测试;即将检验视频存储器。测试扩展内存。
61显示系统配置表。视频存储器检验结束;即将进行DMA#1基本寄存器的测试。.
62开始用中断19H进行系统引导。通过DMA#1基本寄存器的测试;即将进行DMA#2寄存器的测试。测试扩展内存地址线。
63.通过DMA#2基本寄存器的测试;即将检查BIOSROM数据区。.
64.BIOSROM数据区检查了一半,继续进行。.
65.BIOSROM数据区检查结束;将把DMA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧农业发展战略研究
- 智能食用菌养殖技术与实施策略
- 高层建筑消防系统施工中的技术难点分析
- 数据驱动的软件创新机制与产业升级路径研究
- CUDA并行编程从入门到实战指南
- 体育康复课程体系创新设计与实践探索
- 施工现场安全风险防控与整改指南
- 跨境数据传输合规-洞察及研究
- 养老院消防安全隐患排查表
- 兼职律师执业管理办法
- 一年级看图写话(教学)课件
- 严重药物不良反应诊断与处理
- 直流屏原理-课件
- 加药设备安装 检验批施工质量验收表
- 岗位技能评定机考考场规则
- 尽职调查所用相关表格(全)
- 三基-学校儿童少年卫生学(200题)练习
- 老年康养服务中心项目可行性研究报告写作参考范文
- 生物质中纤维素、半纤维素和木质素含量的测定
- 枸杞采摘合同
- 涡流探伤仪设计方案
评论
0/150
提交评论