基于Unity3d仿Minecraft沙盒游戏的设计与实现_第1页
基于Unity3d仿Minecraft沙盒游戏的设计与实现_第2页
基于Unity3d仿Minecraft沙盒游戏的设计与实现_第3页
基于Unity3d仿Minecraft沙盒游戏的设计与实现_第4页
基于Unity3d仿Minecraft沙盒游戏的设计与实现_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着时间的推移,人们的生活方式发生了重大的变化,在生活中也积累了各种各样的压力,学习上的压力、生活上的压力等等,且各方面的压力越来越大,所以人们通过寻找各种方式来释放自身的压力,其中游戏成为一种不错的选择,游戏也因此开始发展。随着时代还有科技发现,游戏数量和种类越来越多,并且随着硬件和软件性能的不断提高,游戏的质量与娱乐性也越来越高。如繁星般多的游戏的诞生,渐渐融入人们的生活中,促使了游戏广阔的发展前景。沙盒游戏是众多类型游戏里面其中比较特别的一种。沙盒游戏起源于沙盘游戏,沙盘游戏原本就是由玩家利用各种素材搭建出自己独特的场景的一种游戏,沙盒游戏也正好继承了这一特点。众多不同主题的沙盒游戏里面,都有一些共同的特点,例如没有清晰明确的主线,所有事件都要玩家自己触发;玩家最根本的目标是在游戏中活下去,其次是探索地图;地图广阔,由多种多样的游戏环境组成;游戏元素多样化,多种元素共存一体,还有最大的特点是玩家可以改变世界,甚至是创造世界。本论文探究基于Unity3D的仿Minecraft游戏的开发。在沙盒式游戏中,Minecraft是极为出名的,它可以让玩家可以肆无忌惮地发挥其创作才能。通过学习制作一个仿Minecraft的沙盒式游戏,不仅可以学习到如何制作一款沙盒游戏,学会使用Unity3D开发游戏,还可以培养我们的分析与解决问题的能力。本篇论文围绕本游戏基本的需求功能,来设计出本沙盒游戏的大概的组成部分,然后再编写脚本代码来实现游戏需求中的各个功能。关键词:Unity3DMinecraft沙盒游戏

Abstract Withthepassageoftime,people'slifestyleshaveundergonemajorchanges,andvariouskindsofpressureshaveaccumulatedintheirlives.Thepressuresonlearning,thepressuresonlife,etc.,andthepressuresinallaspectsareincreasing.,Sopeoplefindwaystoreleasetheirpressure,andgameshavebecomeagoodchoice,andgameshavestartedtodevelop.Withtheeraofscienceandtechnologyalsofoundthatthenumberandtypeofgamemoreandmore,andwiththecontinuousimprovementofhardwareandsoftwareperformance,qualitygamesandentertainmenthavebecomemoresophisticated.Thebirthofgamesasmanyasstarshasgraduallyintegratedintopeople'slives,promptingthegame'sbroaddevelopmentprospects.Sandboxgamesareaspecialoneofmanytypesofgames.Thesandboxgameoriginatedfromthesandboxgame.Thesandboxgamewasoriginallyagamewhereplayersusedvariousmaterialstobuildtheirownuniquescenes.Thesandboxgamealsoinheritedthisfeature.Manysandboxgameswithdifferentthemeshavesomecommonfeatures.Forexample,thereisnoclearmainline,andalleventsmustbetriggeredbytheplayer;themostbasicgoaloftheplayeristosurviveinthegame,followedbyexploringthemap;themapisvastItconsistsofavarietyofgameenvironments;gameelementsarediversified,multipleelementscoexisttogether,andthebiggestfeatureisthatplayerscanchangetheworldorevencreatetheworld.Inthispaper,basedonUnity3DexplorethedevelopmentofimitationMinecraftgame.Insandboxgames,Minecraftisextremelyfamous,itallowsplayerstounleashtheircreativeabilitieswithimpunity.BylearningtomakeasandboxgamethatmimicsMinecraft,youcannotonlylearnhowtomakeasandboxgame,learntouseUnity3Dtodevelopgames,butalsocultivateourabilitytoanalyzeandsolveproblems.Thispaperfocusesonthebasicrequirementsofthisgametodesigntheapproximatecomponentsofthissandboxgame,andthenwritescriptcodetorealizethevariousfunctionsinthegamerequirements.Keywords:Unity3DMinecraftSandboxgame广东东软学院本科毕业设计(论文)目录第一章绪论 第一章绪论1.1选题的目的和意义科技的不断发展,让人们的生活水平越来越高,游戏也变成人们生活中的一部分,对玩家而言更是如此。玩家的需求让电子游戏的内容与形式越来越多样化,对游戏的各方面的要求也越来越高。其中因大多数玩家的需求,更真实的感官体验自然而然地变成了玩家们的追求,而玩家们的追求促使它逐渐演变成电子游戏的一种发展方向,这时,3D游戏这一分类出现在玩家们的视线里,如期望般让玩家带来真实的感官体验。与传统的2D游戏相比,3D游戏能让用户在视觉上感觉更加真实和享受。因此,做一款3D游戏,不仅是为了符合玩家们的口味,也是为了迎合游戏市场的需求,在游戏市场站稳脚跟。Unity3D是2004年由一家美国的视频游戏开发商开发的一款游戏开发引擎,因为Unity3D操作简单,窗口功能明确,自身功能强大,使得一些想进入游戏开发行业的人员可以快速入门,也吸引了不少游戏开发人才学习使用Unity3D开发游戏;使用Unity3D开发游戏的成本较低,而且开发周期相对较短,所以Unity3D的使用在游戏行业前景上十分广阔。Unity3D的各种特点优点,加上目前游戏市场前景相对不错,使得许多游戏公司想用Unity3D开发的游戏在游戏市场分一杯羹,因此各个游戏公司都开始高薪招聘使用Unity3D开发游戏的游戏开发人才。积极的游戏市场、诱人的工作薪资,还有许多乐观的因素,使得Unity3D游戏开发的前景越来越好。从各种游戏视频中,其实可以发现在很多游戏和3D技术开发使用中都或多或少有一些Unity3D的影子,例如在一些游戏里会有第三人称视角和第一人称视角之间的来回切换的功能,在Unity3D中通过对摄像机的来回切换就可以实现这样的功能。丰富的功能,简单的操作,低廉的成本,广阔的市场,这就是Unity3D为什么如此火的原因。Minecraft,看着这个英文名可能有人知道是什么,但很多人应该是对这个英文单词一脸陌生,其实翻译过来就是我的世界。在众多的沙盒式游戏中,我的世界可以说是最出名的,在世界各地都有这款游戏的玩家。在我的世界里,玩家可以对开放式的无限地形做出任意的改变,随地可得的游戏素材,有大概的主线剧情和丰富的支线成就系统,让人眼花缭乱的合成系统,多种玩法模式选择,模仿现实生活中数字电路的红石电路,允许加入各种游戏mod丰富游戏模型和玩法,这些特性将这个游戏变得与现实世界更加贴合,让各种游戏玩家都可以在这个游戏里面找到符合自身兴趣的玩法,让各种艺术创作者可以在我的世界里面创作出属于自己独一无二的作品。多种多样的游戏特性再加上简单易懂的操作过程,使得游戏在上线没多久就吸引了众多玩家进入这个创作无限的开放性沙盒游戏,到现在我的世界已经衍生出许多二次艺术创作。本次选择模仿我的世界的无限随机地形和基本玩法,制作一款简单的仿Minecraft(我的世界)的沙盒游戏。同时选择制作这沙盒游戏为课题也是想通过热门游戏的形式来熟悉和了解Unity的相关技术操作,从而在未来能在开发3D游戏的主流趋势下站住脚跟。1.2国内外的研究与发展现状1.2.1国外发展的现状在1969年的欧美国家,第一款网络游戏悄然诞生,有个人为“柏拉图”(PLATO:ProgrammedLogicforAutomaticTeachingOperation)系统编写了一个软件,这款软件可以同时让两个用户联机打同一款游戏,这就是网络游戏最初的雏形。之后在九十年代初,世界第一款3D第一人称射击游戏被美国的IDsoftware的创始人之一的约翰·卡马克与他的团队开发出来,其公司研发的Doom游戏引擎也成为历史上第一个3D游戏引擎。在20世纪末,世界各主要发达国家的游戏产业格局已基本形成并开始大规模发展,其中日本因为自然资源相对匮乏,看到游戏产业发展前景的日本政府便选择游戏娱乐产业为国家提供经济收入的途径之一,而游戏产业也不负众望,成为国民经济的重要支柱。游戏产业初露锋芒,世界多个经济强国都嗅到了金钱的味道,纷纷把游戏产业当做国家的重要支柱产业来发展,其中韩国政府的做法更甚,让电子游戏甚负担起了振兴国民经济的使命,将游戏定位为文化产业的核心,在今天看来,韩国政府的选择的确是挺明智的,其游戏产业也成为了韩国的经济命脉,给韩国带来了充足的内需和出口。1.2.2国内发展的现状中国在游戏行业相比其他国家起步较晚,1998年6月的《联众游戏世界》是中国网络游戏正式出现的开端,而国内首款自主研发的3D游戏开始于2003年。中国的游戏厂家主要集中于北京、上海、广州、深圳、成都等城市。到目前为止,我国有许多游戏厂家推出了许多有强大市场影响力的游戏作品,例如《大话西游》、《传奇》、《天龙八部》。而且,网络游戏的兴起也带动了其他相关产业的发展。虽然在国内,在3D游戏方面已经有了明显的进展和较多的研究,但是因为3D游戏引擎的开发需要很多的人力财力,一般的小型游戏公司都无力承担,所以国内自主研发的3D游戏引擎还是十分稀少,小型游戏公司都是选择其他价格相对便宜且技术成熟的游戏引擎和开发工具,例如本文所讲的Unity3D游戏引擎和与之相提并论的寒霜引擎和虚幻引擎。1.2.3未来发展的启示综上所述,通过对比国内外的发展现状,可以看出虽然我国的游戏开发还未发展到国外的水平,但是国内的发展前景还是很好的,而且现在国内的游戏开发人才也是越来越多,相信在未来我国的游戏行业会越来越好。1.3论文设计思路本论文从最初构想到分析,结合了一些游戏开发资料,设计出了一个沙盒式游戏的制作过程,其中具体介绍游戏的制作步骤,包括游戏的功能实现和一系列实现代码。论文分为六个章节,大概内容如下: 第一部分:绪论,主要阐述该毕业设计的目标和意义和国内外相关内容的研究和发展。 第二部分:大概介绍本游戏制作时所使用的的各类开发工具。 第三部分:介绍本游戏的需求分析,包括目标、任务和功能需求分析。 第四部分:介绍本游戏的总体设计。 第五部分:介绍本游戏各个组成部分的代码的实现。 第六部分:测试游戏并进行打包封装。 第七部分:对本次的游戏制作的总结和反思。

第二章系统开发工具与相关技术本章主要说明本沙盒游戏开发时所使用到的各类开发工具和与之相关的技术,并着重介绍本游戏开发所使用的的Unity3D游戏引擎。2.1Unity3D游戏引擎2.1.1Unity3D软件介绍丹麦UnityTechnologies公司开发为了更快更好地开发游戏,便开发了的一款支持多平台的综合型游戏开发工具,这个工具就是Unity3D,全球开发者都因为其成熟的开发环境和简便的使用方式而赞不绝口。它提供了目前最好的跨平台服务,在正常情况下,平台之间的各种差异性经常会影响到游戏的开发进度,但是Unity3D作为一款支持多平台的综合型游戏开发工具,可以把游戏在所有主流平台之间完美移植。为了更好地帮助游戏开发者开发和维护游戏,Unity3D提供了许多使用方便个、功能强大的工程视图,其中最基础的工程视图是project视图,hierarchy视图,inspector视图,scene视图和game视图。project视图用于查看存放游戏中的资源文件,比如模型、材质、字体等素材,还包括该游戏的各个场景;hierarchy视图用于查看已打开的游戏场景中的各个组成部分;inspector视图用于展示游戏物体的各种属性,前提是当前用鼠标选中的,否则视图不会有属性显示;scene视图用于查看存放在游戏中模型资源,游戏内所有的模型、材质、灯光都可以在此视图查看,也可以直接通过拖动project视图内的素材到此视图来创建需要用到的模型;game视图用于观察游戏的运行,在此视图无法编辑游戏物体,但可以清楚地看到游戏的运行效果,以达到临时测试运行的作用。2.1.2API接口Unity3D丰富的API可以帮助游戏开发者完成各种需求。API是一些已经定义好的公共函数,可以让游戏开发者在不需要了解内部方法的实现过程就可以得到函数输出的结果。Unity3D提供了丰富的组件和类库,让开发者可以随意调用组件去实现自己的功能。通过这些API函数,开发人员可以很方便地实现项目的初始化,熟练掌握和使用这些API对于游戏开发效率提高很重要。2.1.3物理引擎近年的游戏中,有很多游戏都开始注重对物理引擎的利用,比如绝地求生中重力对子弹的影响,人类一败涂地中角色对物体的作用等。这几年来,许多游戏都开始重视物理引擎,因为现在的玩家除了关注游戏的关卡是否好玩,游戏类型是否符合玩家心中的类型,游戏的可玩度高不高,也开始关注游戏带给玩家的真实感和代入感,而一个游戏对象的设计都尽量符合其现实物体的特性,这样游戏才会显得真实可信,这样玩家才能在游戏中获得更大的真实感。在Unity3D游戏设计的物理引擎中,刚体、碰撞、材质以及关节运动等一系列组件为引擎的组成部分。游戏物理引擎的主要作用就是模仿物体在现实生活中受到外力作用时的互相影响、互相做力的作用的表现的现象。通过该游戏平台的物理引擎得到的这些逼真的游戏体验会让你产生这就是一个在游戏里创造现实的错觉。2.1.4Unity常用生命周期的函数传统的代码程序一般都是从规定的函数入口开始运行,而Unity3D的代码是模拟一个事物的生老病死一样,用生命周期事件代替一般的流程性编译,通过编译这些生命周期内的事件。这些生命周期函数在Unity内部不断地迭代,最终就会产生游戏运行时在摄像机前表现出来的结果。下面按照生命周期介绍Unity3D中一些常用的事件函数:Start():只有脚本挂载的游戏对象在被启用的时候才能够被运行。Update():如果脚本在开始就启用了MonoBehaviour,那么在游戏运行的时候就会一帧调用一次。Update函数的作用就是更新每一帧后脚本挂载的对象的状态,一般来讲游戏都是以帧为单位进行状态更新,因为大多数游戏的逻辑都是按帧率进行执行的。FixedUpdate():如果脚本在开始就启用了MonoBehaviour,那么在游戏运行的时候就会以开发者设定的固定帧调用一次FixedUpdate函数,如果设定的固定帧是一帧,那么FixedUpdate函数执行的结果就与Update函数执行的结果一样,两个方法不同的地方就是FixedUpdate函数可由开发者去控制执行的频率但是Update函数不可以。有一点需要注意的是,在处理Rigidbody刚体的时候,应使用FixedUpdate函数去处理而不是Update函数,因为设备的性能或者是其他的原因,Update函数调用的频率有可能是不一样的,这会导致使用Update函数处理刚体的时候刚体的运动轨迹就可能会很异于现实生活,但FixedUpdate函数是以固定时间去调用,所以就不会发生这样的情况,刚体的运动轨迹看起来就会比较平滑。2.1.5用户图形界面本文中沙盒游戏的用户图形界面主要使用UGUI进行UI界面的开发。图形用户界面的英文简写是GUI,OnGUI、NGUI、UGUI等都是Unity3D中的UI的分类。Unity的GUI系统被称作UnityGUI,UnityGUI内含有多种功能齐全的UI控件,通过在UI界面中的创建控件操作,就可以同时完成控件实例化,定位和功能定义,然后开发者只需要写少量的脚本并将脚本挂载到相应的控件上,让控件可以控制运行挂载的脚本,就可以实现多种多样的功能。2.23DsMax软件3Dsmax是一款基于计算机操作系统开发的三维建模软件,由discreet公司开发,因为功能强大所以成为游戏开发中常用的游戏建模工具之一。本软件在开发出来后原本的用途是使用本软件制作出动画,所以在此之后被一些影视制作者看重,然后被进一步用于影视片中的特效制作。虽然3DsMax功能强大,在学校有学习过一些该软件相应的操作,但是对于我来说,让我建造游戏的模型还是有些勉强的,所以在在这里只是简单介绍一下3DsMax的用途,本游戏内使用的模型都是在网上找到的制作好的模型,但因为建模文件格式有可能不是Unity3D能直接导入使用的格式或者建模文件有错误,所以需要使用3DsMax检查建模是否正常,然后再导出为.fbx格式的模型文件在导入到Unity3D中使用。2.3C#开发语言C#是一款面向对象的编程语言,由微软发布出来。C#有许多特性与Java的许多类似,因此跟Java一样,C#也有许多程序员使用。虽然C#是可以跨平台运行,但是这个跨平台的前提是需要有特定的虚拟机,所以在没有虚拟机的情况下在其他平台是无法运行C#代码的,但因为Unity3D支持平台开发,而且支持使用C#进行脚本编程,所以才使C#可以多平台编译;语法清晰明了,类库使用方便,这些都是C#的有点,或许这也是Unity3D支持C#进行脚本代码开发的原因。2.4VisualStudio2019VisualStudio是在Windows平台上流行的的集成开发环境(IDE)。VisualStudio有着大多数IDE都有的功能,支持代码的编辑、调试运行和封装打包,而且还有许多其他的功能,可以帮助开发者减少开发难度;目标使用人群是编写在微软支持的所有平台上运行的代码的程序员,VisualStudio目前支持的编程语言有C++、C#、F#、R、Python、VisualBasic、TypeScript和JavaScript。

第三章游戏设计本章内容主要是本沙盒游戏的各部分组成,并进行大概的阐述,以明确本游戏开发的目标和功能需求。3.1游戏组成本沙盒游戏由两大部分组成,分别是游戏场景和游戏人物两个部分,游戏场景由游戏UI界面和游戏地形组成,是玩家可以自由查看的部分,游戏人物是玩家操控的游戏物体,是玩家用于体验游戏的游戏对象。具体游戏功能组成如图3-1所示。图3-1游戏组成部分 3.2游戏场景设计本游戏模仿Minecraft,将游戏整体分为三个场景,分别是开始场景,加载场景和游戏内场景。开始场景为UI界面,该界面模仿Minecraft开始界面的布局,以游戏标题和三个按钮组成,按钮用来进入游戏内场景和进行游戏的部分设置。加载场景插在开始场景和游戏内场景之间,让玩家有一种游戏正在加载的感觉,同时可以在加载界面加入游戏提示,用于提示玩家。加载界面用了游戏界面的截图作为背景图,且在加载条上使用了与背景图颜色相关的颜色作为加载条颜色,用Minecraft中让玩家最熟悉的草方块作为加载条图案,贴合该游戏的主题。游戏内场景就是游戏运行时的界面,是游戏中非常重要的构成,元素由与Minecraft游戏中相似的游戏道具、地形、环境、建筑等元素组成,是整个游戏非常重要的构成元素,此场景就是让玩家体验整个游戏的场景。3.2.1开始场景设计开始游戏界面与Minecraft的开始界面类似,在游戏窗口的正上方显示本游戏的名字,接着在下方的位置放置开始场景所需要的开始按钮、设置按钮和游戏退出按钮,其中点击开始按钮则进入游戏加载页面,点击设置按钮则弹出设置窗口进行游戏设置,点击退出则关闭游戏。开始界面的组成如图3-2所示。图3-2开始场景组成3.2.2加载页面设计加载页面由进度条、背景图片和游戏提示文字组成。加载进度条放在窗口总体位置的下方,然后游戏提示在进度条上方的位置,用于提示新手玩家如何玩这款游戏。待进度条到最后的时候,通过点击任意按钮跳转到游戏场景并开始游戏。加载页面组成如图3-3所示。图3-3加载场景组成 3.2.3游戏内场景设计因为本游戏为仿Minecraft的沙盒游戏,所有的游戏地形搭建都为随机生成,所以刚进入场景时没有地形。界面开始应有游戏设置的按钮,用于让玩家可以在游戏中也可以修改部分游戏设置。图3-4为游戏内场景组成的示意图。图3-4游戏内场景的组成 3.3游戏人物设计3.3.1人物模型设计因为这是一个沙盒游戏,所以游戏人物相对其他模型要求十分精细的来说就十分简单,人物只需要几个方块,调整大小后就可以拼搭成游戏所需要的游戏人物。对应所需要的人物模型我从网上找到了与Minecraft主题比较贴合的模型,但因为下载下来的模型不是Unity3D所支持的.fbx格式,因此我需用用到3DMax,将模型导入到3DMax之后再将其另存为.fbx格式导出,这样我就可以将人物模型导入到Unity3D中使用了。模型导入的方法十分简单,这里又突出了Unity3D强大的一点,我们可以直接将模型拖动到Project视窗内,Unity3D就会自动为我们导入模型到对应的文件夹内。图3-5为人物模型。图3-5人物模型3.3.2人物功能的实现导入人物模型后首先调整好人物相对游戏地形的大小,然后给人物添加控制器、刚体和碰撞体,这样任务就具有了真实的物理属性,可以在游戏中与场景物体产生碰撞。 游戏人物所需要的功能有人物移动,地形的破坏、物品的创建和素材的碰撞获取。功能的添加是用脚本实现的,在这里我选择通过给人物添加脚本做例子,在脚本里添加移动方法,让玩家可以随控制人物的移动。我默认设置了WASD键为人物前后左右的移动按键。其实Unity3D有许多非常好用的插件,例如人物控制器。使用人物控制器,我们可以减少许多代码的书写,且可以更加高效和方便让玩家地控制人物模型的移动,一般人物控制器默认的移动按键为WSAD键。如果有一些特殊的方法,我们可以使用VisualStudio2017来编写自己所需要的代码,来实现我们所需要的游戏功能。游戏人物的功能组成如图3-6所示。图3-6游戏人物功能组成

第四章游戏总体设计本章是结合前面第二章、第三章的内容来阐述游戏总体的设计,并对各部分的设计进行详细的介绍和说明,明确游戏各部分的设计明细和实现方法,是游戏实现过程更加清晰,方便进行之后游戏开发的流程,减少异常情况的发生,有利于之后游戏的完善和其他玩法的开发。4.1开始场景设计第一个场景为开始场景,包括开始游戏界面和设置界面。4.1.1开始场景开始场景是一个2D的UI界面,界面使用了Unity3D的UI系统进行制作,在hierarchy视图中右键会弹出选择选项,选择里面的UI选项,再选择Canvas画布选项,这样就可以新建一个画布组件,我们就可以在上面挂载各种各样的组件,例如Text文本、Image图片、Button按钮、Slider滑动条、Toggle选择框,在本页面我使用了图像组件设置了整个开始界面的背景图,用文本组件设置了游戏名,然后用三个按钮设置了几个点击事件,开始界面如图4-1所示,对应的点击事件如下:Start按钮:用于进入游戏加载场景。当玩家使用鼠标选择点击此按钮时就会跳转到游戏加载场景。按钮会用不同的颜色变化来提示玩家目前在把鼠标移动到按钮上方或者正在点击按钮。Setting按钮:用于打开游戏设置界面。设置界面会在点击设置按钮后在摄像机前显示,并发出弹出窗口的提示音。玩家可以在设置界面修改特效声音和查看设置操作方式等设置选项。Quit按钮:用于退出游戏。点击此按钮则停止游戏并关闭游戏窗口。点击事件基本都是由自己编写脚本后然后通过一系列操作挂载到按钮上,这样才能在点击按钮的时候触发相对应的点击事件。具体挂载脚本的操作就是先在游戏场景中右键添加一个空对象CreateEmpty,这时hierarchy视图中默认会在最后一个游戏对象后面添加对象,点击空对象让空对象的属性信息出现在inspector视图中。在inspector视图中有一个AddComponent按钮,这个按钮就是为对象添加组件或者脚本的按钮。点击AddComponent,在弹出的选项框中搜索选择自己刚刚编写好的脚本,这样就可以在空对象上挂载自己编写的脚本了,然后把空对象挂载到按钮上的点击事件,这样就可以在点击事件中选择点击后触发的事件。在开始按钮挂载脚本添加点击事件后会如图4-2所示。图4-1游戏开始场景 4-3Button添加点击事件示意图4.1.2设置场景点击设置按钮会打开游戏设置界面,制作设置界面需要创建在Canvas层级下创建一个Panel组件,命名为Setting,然后再在Setting下创建Text文本内容、Toggle选择框、Slider滑动条、Button按钮,在文本内容添加操作方式说明,然后再选择框挂载脚本这样就可以控制音效播放,在滑动条挂载脚本用于控制音效声量,然后再设置界面右上方添加设置窗口关闭按钮,在右下方添加应用按钮,然后再这两个按钮上挂载脚本添加点击事件,这样我们可以设置完后,直接点击关闭窗口按钮就会不保存修改后的设置然后将设置界面隐藏,如果想要应用设置就右下角的应用按钮,然后设置界面会在保存设置后隐藏。设置界面如图4-3所示。4-3设置界面示意图4.2加载界面 加载界面是指在进入正式游戏界面前的过渡场景,可以让玩家不会进入游戏界面后因为游戏场景正在加载而卡顿在原地无法操作。 4.2.1.加载界面的功能过渡界面的功能是在场景切换的时候,如果游戏场景资源过大,有可能会导致进入游戏场景的时候玩家会在原地等待游戏加载无法操作,这时候就需要加入游戏加载场景。因为游戏主场景的游戏对象比较多,所以只能使用异步加载SceneManager.LocalSceneAsyne()方法,因为如果直接使用SceneManager.LocalScene()方法加载场景的话会有明显的卡顿现象。用SceneManager.LocalSceneAsyne()方法加载场景,就可以在运行加载场景的同时异步加载游戏场景,这样等加载场景完成的时候就可以跳转到加载好的游戏界面了。跳转场景如图4-4所示。 4.2.2加载界面的制作与开始场景相似,也是一个UI界面,首先添加Canvas画布组件,然后在画布组件层级下添加Panel画板、Text文本内容、Slider滑动条组件。然后一样在hierarchy视图中创建一个空对象,然后在inspector视图添加自己刚刚编写好的异步加载场景方法的脚本,这样就可以在空对象上挂载自己编写的脚本了,然后把空对象挂载到按钮上的点击事件,选择对应脚本中的异步加载方法,这样就可以在点击开始游戏按钮后跳到加载场景且异步加载游戏场景了。 图4-4加载界面的示意图4.3游戏场景 玩家可以正式放开手脚去创作玩耍的地方就是本游戏的游戏场景,本沙盒游戏的游戏场景主要是由游戏地形和游戏界面组成。游戏地形是人物角色所处的地方,而游戏界面UI是游戏场景中的UI界面以及游戏菜单UI。4.3.1游戏界面的功能游戏地形是玩家进行游戏的环境,在本沙盒游戏中玩家可以对地形进行任意的操作,例如破坏、创建。而且因为本游戏地形采用的是随机无限地形生成,所以玩家可以无限采集素材,做出无限大的、属于自己的地形环境。游戏的UI界面包括血量UI、物品栏UI,背包UI和返回菜单UI。物品栏UI的作用是显示玩家可以通过快捷键使用的物品,背包UI是显示玩家目前所拥有的的素材的种类和数量,而且可以通过拖动素材将素材放入物品栏,游戏菜单UI是用于返回开始界面、进行音量控制和查看游戏操作。4.3.2游戏地形的创建因为游戏地形是用随机无限生成的方法创建的,所以本游戏地形是通过代码进行生成的。无限生成的原理是通过二维柏林噪声函数通过循环生成三维地形,方法是通过给定范围内遍历每个x和z坐标,然后用0到样本的素体voxels填充整个世界,其中样本是在坐标(x,z)处对柏林噪声函数进行采样的结果。因为计算机资源和硬件限制,我不可能在不遇到计算极限的情况下显示无限的世界,所以我只对当前的坐标为中心的范围进行采样。单纯使用柏林噪音函数生成三维地形会显得不够自然,与现实的地形有些差别,所以我将几个不同频率和振幅的柏林噪声函数相加,这样生成的函数可以生成更加符合自然地形的三维地形。这种地形生成方法叫做Octaves倍频分层叠加地形设计。生成的地形示意图如图4-5所示。 然后通过给定位置的函数值结果决定给定位置所使用的的素体voxel类型,例如,如果得到的函数值是0.5,则使用水的预制体去填充这一模块,如果是0.7则使用泥土去填充它,这样我们就可以把整个地形用各种预制体填充完整,做出一个真正的有山有水的地形。填充后的地形示意图如图4-6所示。图4-5地形生成示意图图4-6用素体填充后的地形示意图4.3.3游戏界面UI的创建游戏的UI界面包括血量UI,物品栏UI,背包UI和返回菜单UI。血量UI处于物品栏UI的上面一点的位置,显示当前为玩家人物的血量,如果有血量变动,则会调用对应的脚本,让UI会发生相应的变化,例如扣除一颗心的血量时,血量UI就会将从右开始计算的第一颗红心改变成黑心,以代表玩家扣除了一颗心的血量。血量UI示意图如图4-7所示。图4-7血量UI示意图 物品栏UI处于整个游戏窗口的正下方,会显示玩家人物背包中已有的且放入物品栏的素材,可以通过按下相应的快捷键来调用物品栏右下角对应快捷键的素材。物品栏UI的示意图如图4-8所示。图4-8物品栏UI示意图背包UI位于整个窗口的中心,背包UI默认显示状态是false,当点击打开游戏背包的快捷键时就会将显示状态改成true,这样就可以做出背包UI的打开与关闭。背包UI显示玩家人物在当前世界中获取的素材和素材的数量,当玩家获得某一素材的时候,背包里就会创建素材对应的图标,并计算素材的数量,数量显示在素材图标的右下角。如果玩家想将素材放入物品栏,可以通过使用鼠标拖动素材图标到背包UI最下方的一栏,这样就可以将素材放入物品栏。背包UI的示意图如图4-9所示。图4-9背包UI的示意图游戏设置UI跟开始界面的UI相似,设置界面需要创建在Canvas层级下创建一个Panel组件,命名为Setting,然后再在Setting下创建Text文本内容、Toggle选择框、Slider滑动条、Button按钮,在文本内容添加操作方式说明,然后再选择框挂载脚本这样就可以控制音效播放,在滑动条挂载脚本用于控制音效声量,然后再设置界面右上方添加设置窗口关闭按钮,在右下方添加应用按钮和返回开始界面按钮,然后再这两个按钮上挂载脚本添加点击事件,这样我们可以设置完后如果不想保存设置就可以点击关闭按钮直接关闭设置窗口,如果要应用设置就点击应用按钮应用设置然后关闭按钮,如果想退出游戏则可以打开设置界面,点击里面的返回菜单按钮返回到开始界面,通过开始界面的退出按钮退出游戏。

第五章游戏代码实现本章会结合前两章的内容来实现编写游戏的代码。本文不会展示本游戏实现的全部代码,但会通过阐述相关的实现逻辑来说明本游戏几个场景中主要代码脚本实现的方式。5.1游戏开始界面代码实现开始界面需要调用到脚本的地方有游戏标题、开始按钮、设置按钮、退出游戏按钮。5.1.1游戏标题游戏标题使用了颜色渐变的脚本,可以让字体颜色从一种颜色到另一种颜色渐变。该脚本是通过继承BaseMeshEffect,然后用代码编写出颜色渐变的方法,最后重载函数以实现颜色渐变的操作。然后将代码挂载到标题上就可以设置标题字体的颜色变化了。部分实现颜色渐变的代码的示意图如图5-1和图5-2所示。图5-1设置整体颜色渐变方法图5-2设置每个字体颜色渐变方法5.1.2开始按钮开始按钮主要实现的功能是界面与界面之间的跳转,这里需要调用的方法是SceneManager类的LoadScene()方法,这个方法可以在调用此方法的时候让场景跳转到游戏设定的场景,这里我设定了点击开始按钮的时候跳转到加载场景。具体代码如图5-3所示。图5-3跳转场景5.1.3设置按钮设置按钮上主要挂载的脚本代码的作用是显示和隐藏设置菜单和调整音乐音量和是否播放音乐。显示和隐藏菜单的方法是调用游戏对象属性中的GameObject.SetActive()方法,该方法可以设置该游戏对象对相机是否可视,如果为true则相机可以发现该游戏对象,玩家也就可以看到该对象出现在相机里,如果为false则无法看到该游戏对象。我们可以利用这一方法来实现设置窗口的显示和隐藏。具体代码如图5-4所示。图5-4窗口的显示和隐藏游戏音效播放和音量控制是由设置窗口中的Toggle选择框和Slider滑动条控制的,如果选择框选择上,那么游戏音效就会播放,去掉就会立刻关闭游戏音效。拉动滑动条则可以调整音效的音量。具体实现代码如图5-5所示。图5-5游戏音效的播放和音量的控制5.1.4退出按钮退出按钮上挂载的是退出整个游戏的脚本。退出整个游戏只需要调用Application.Quit()这个方法就可以退出整个游戏。我将退出游戏的代码挂载到退出按钮,使我们可以在点击退出按钮的时候就退出整个游戏。具体实现代码如图5-6所示。图5-6退出游戏脚本5.2游戏加载界面代码实现游戏加载需要调用到的脚本是异步加载脚本,使用异步加载可以让我们在加载游戏对象比较少的场景时同时加载游戏对象比较多的场景,这样我们在切换场景到游戏对象较多的场景的时候就不用等待场景加载游戏对象,直接可以进行游戏交互了。5.2.1异步加载SceneManager.LoadSceneAsync()方法是我们这个加载场景的最重要的方法,当我们进入加载场景的时候就会调用这个方法,这个方法可以帮助我们在一个场景中加载另外一个场景,这样就可以实现处于加载场景的同时利用剩余的资源去加载之后的游戏界面。但是因为现在的电脑性能都十分强大,对于加载本游戏的游戏场景不需要太多的时间,所以我们调用Mathf.Lerp()方法,用于减缓进入游戏界面的进度,这样做出来的加载界面才有使用的意义。当加载进度大于95%的时候我们就可以通过按下任意键的方式跳转到我们异步加载完毕的游戏界面。具体实现代码如图5-7所示。图5-7异步加载5.3游戏界面代码实现在本游戏界面中最主要的代码是随机地形生成、背包UI、物体破坏与创建的代码。随机地形生成是本游戏最主要,也是最重要的脚本,没有实现这个代码就没有本游戏的游戏地形,也就不可能实现本游戏的开发。背包UI的作用是显示玩家人物在当前世界中获取的素材和素材的数量,当玩家获得某一素材的时候,背包里就会创建素材对应的图标,并计算素材的数量,数量显示在素材图标的右下角。物体破坏与创建是原游戏Minecraft的基础功能,玩家可以通过对游戏地形的破坏和创建来做出属于自己独一无二的作品。这里将详细讲述一下随机地形生成代码的实现。5.3.1随机地形生成说随机地形生成之前要说两个概念,一个是chunk块,一个是voxel素体。块是地形生成的单位,将玩家周围的世界分割成相同大小的块,然后为每个块生成地形,然后将多个生成的块拼接起来就是本游戏的地形。素体是块中方块的单位,块中生成的地形的素材都是由素体组成的。当玩家进入游戏场景的时候,脚本就会加载生成玩家人物附近的地形,但是不会加载脚本范围约定外的地形,这样做的原因是为了节省计算机资源。当玩家移动人物角色或视角的时候,如果人物角色到达一定范围就会在脚本约定范围内生成原本没有生成的地形,同时销毁约定范围外的地形,这样做的原因也是为了节省计算机资源。设想一下,如果不销毁不需要的游戏对象,这会大大消耗计算机的资源,等到游戏对象堆积到一定程度,将计算机资源占用到一定程度的时候,游戏的运行将因为缺乏计算机资源而受到变得卡顿,所以。随机地形生成的部分实现代码如图5-8所示。图5-8随机生成地形部分脚本

第六章游戏测试游戏测试是游戏开发中必不可少的步骤,是保证游戏可以正常运行的操作。游戏测试不仅在游戏开发的最后阶段才会进行,在每个功能实现、场景搭建之后都会插入单独的测试方法,这样做虽然会增加游戏开发的时间,但是可以防止游戏中的小功能发生异常导致整个游戏的崩溃。同时,游戏测试也可以验证游戏的功能是否符合游戏设计时设定的需求。完成游戏测试后,游戏的综合质量可以得到保证,同时也可以完善游戏的功能,提高游戏的完成度。完成游戏后,点击Unity3D游戏开发平台左上角的File按钮,选择里面的BuildSetting选项,将三个游戏场景拉进BuildSetting窗口里的ScenesInBuild栏,然后选择以PC平台作为游戏打包后运行的平台,最后点击Build进行游戏封装打包。找到打包好的游戏双击打开,在弹出的游戏总体设置窗口里可以调整游戏的分辨率、游戏素材渲染质量、玩家人数、游戏按键这些选项。调整好设置项后点击Play按钮,游戏就正式开始了。经过测试,鼠标可以在游戏场景中正常点击各个游戏UI,玩家任务可以在游戏场景中自由行动,游戏各基本功能都没有出现Bug正常运行。快捷键的映射和按下快捷键后的反应均无异常,游戏需求里的大部分功能都基本实现,运行时没有明显的卡顿,可以正常使用。下面在三个界面中选几个功能进行测试。6.1开始界面测试在开始界面中测试设置窗口是否正常打开,各个UI是否正常。图6-1设置窗口测试过程中没有其他问题,鼠标可以正常地与UI交互,设置窗口的显示和隐藏也没有问题。6.2加载界面 加载页面需要测试的是加载进度条是否正常,加载完毕后是否进入游戏界面。图6-2加载场景经测试,进度条有正常运行,加载完毕后按下任意键会跳转到游戏界面,加载场景测试正常。6.3游戏内场景 游戏内场景主要测试游戏地形是否正常加载,人物功能是否正常,游戏UI是否正常运作,快捷键是否正常反应。图6-3游戏内场景经测试,游戏地形如设计一样自动生成,游戏运行流畅,场景素材正常,人物能正常流畅走动,游戏各基本功能都没有出现Bug正常运行,快捷键的使用均无异常,游戏基本功能都已实现。PAGE 第七章总结一个基于Unity3D的仿Minecraft游戏的设计与实现的完成,同时也标志着我毕业设计的工作也就此结束了。在这次游戏的设计制作过程中,我学到了很多,不仅巩固了之前课程中学到的知识,同时也发现了自身在技术上和设计上的一些问题,也让我我怀着更严谨更谦虚的态度去面对今后的游戏设计与开发。在毕业设计开始的初期,我重温了一下课堂学习的内容并简单了解了下游戏项目开发细节,但是由于在逻辑实现和动画设计这两个方面的学习不够深入,所以在动手制作游戏过程中,经常在这两个方面上僵住了进度,也因此被耽误了不少时间。例如关于第一关的相机跟随和地震模拟实现上,就因为我本身的学习不够深入,导致在制作过程中经常出现无法运行或者是诸如此类的问题。通过在网上查阅资料和视频以及询问同学过后之后,我成功地解决了大部分项目上的问题。虽然项目的问题虽然解决了,但不可否认的是我在游戏开发方面的薄弱点还没有彻底解除,仍需要在今后的自我学习实践中不断完善提升。在这次游戏项目的开发中,我的同学们和指导老师提供了不少的有用的资料和教程,才使得这个游戏项目能最终顺利完成制作。 游戏项目虽然制作成功,但是也存在着以下这些问题: 1. 场景和人物的素材都是从网上找到下载并导入的,缺乏原创性和新颖度。 2. 因为接触Unity3D时间不算很长,目前做出来的游戏只是在PC端上运行,但Unity3D最强大、最吸引人的一点的就是它跨平台游戏的制作,而这一方面我并没有学习到。3. 游戏只有一个游戏场景,游戏可玩性不高,吸引力不够。Unity3D是一款十分强大的多平台游戏开发工具,可以想象,在未来逐渐的发展当中,Unity3D还是会是各游戏开发人员和游戏公司所使用的热门工具,在短时间内应该不会被其他游戏开发工具所赶超,可以说,熟练运用这款强大的开发工具,我才能才游戏行业中开始自己的职业生涯。但由于我对游戏开发的学习不够深入,我对这个游戏开发平台还是不够熟悉和深入了解的,这会导致大学毕业后开始寻找游戏开发的工作时会有很大的困难和阻碍,所以在完成本毕业论文后,将本游戏设计进行完善,解决开发过程中遇到的一些问题,一点点将我做这个游戏项目中所暴露出来的问题补足,这将会是我这一段时间努力学习和工作的目标。在将来的日子里,我将不断学习,加快学习进度,去不断地进行尝试和完善自己,争取在未来使用Unity3D这款游戏开发工具开发出做可玩性更高,功能更多,场景更加丰富,属于自己原创的一款游戏。

参考文献[1]基于Unity3D的测控类虚拟仿真实验技术研究[D].阚研.华中科技大学2019[2]移动游戏快速开发平台设计与实现[D].赵懋骏.电子科技大学2016[3]网络游戏开发的关键技术研究与实现[D].庞影.辽宁大学2019[4]基于Unity3D的虚拟装配技术研究与实现[D].谢振清.哈尔滨工业大学2018[5]基于Unity3D的人体肢体运动展示系统的设计与实现[D].刘志强.电子科技大学2018[6]基于Unity3D引擎的三维角色扮演游戏设计与实现[D].沈士钊.华中科技大学2017[7]基于Unity3D的游戏智能行为体的研究与设计[D].翟涛.沈阳师范大学2018[8]基于Unity3D的策略养成类游戏设计与实现[D].刘骏尧.吉林大学2017[9]在游戏开发实践中培养程序设计能力[J].徐婉珍,李强,魏菊霞.计算机教育2017[10]Unity游戏设计与实现[M].加藤政树.人民邮电出版社2015.[11]unity官方案例精讲[M].优美缔软件上海有限公司.北京:中国铁道出版社2015[12]基于OpenGL的3D游戏设计[D].刘多多.吉林大学2016.[13]基于Unity3D的三维游戏场景设计与实践[D].张策.合肥工业大学2016.[14]论游戏的设计与教学改革[J].李珵.设计艺术研究2015[15]国内外网络游戏产业研究文献综述[J].李宁琪,李可.价值工程2008[16]游戏地图特点分析及对传统地图设计的启发[J].彭勃,徐惠宁,杨洋.地理空间信息2015

致谢随着论文慢慢一点点的变长,毕业设计一点点的完成,我才发现我的大学生涯也在一步步地接近尾声,这让我不禁想起这大学四年来的种种经历。三年半的各种专业课课程中学到的各种理论知识和实践,悄然变成四年中最后半年才完成的毕业设计和毕业论文。这四年经历中的所知所得,让我收获良多,这不仅为我提供了相对应的专业知识,提升了专业技能,为将来的求职做好充足的准备,还锻炼了我自主学习、独立生活的能力。所以,在此,我想借机会对这四年来帮助过我的老师和同学表达我内心中最真挚的感谢,谢谢这四年来对我的支持帮助和鼓励,因为有你们的帮助和宝贵的意见,我才能顺利完成这篇毕业论文的撰写。首先,我非常感谢导师给予的指导和关心。在毕设工作的开展过程中,导师在各个阶段给予的指导对我来讲都十分有效,帮助我解决了毕业设计完成过程出现的问题,让我受益匪浅,促进了我知识的成长;同时在导师的关注下,我也能在这个比较漫长的过程中在实习的情况下保持着良好稳定的心态和节奏去完成毕设工作,还提供了许多关于实际共同工作中的宝贵意见和建议,因此再次向导师表达诚恳的感谢和祝福。另外,我要感谢在网络上提供各种文字资料和图片素材的各位网友,让我进一步学习和拓展了我对Unity3D游戏制作方面的知识。其次,我也很感谢大学四年期间教授我的所有老师们,没有老师们的热情传授,我就不能学习和接触到许多有趣的知识,是你们促进了我的成长以及知识的积累,帮助我为这次的毕业设计做铺垫。然后,我特别感谢我的父母,是你们不辞劳累在外工作,一直支持着我的求学之路,使我能够丰富学识和阅历,从而更好地的在人生道路上前行,谢谢你们!在最后,再次感谢在这大学四年里,教导我、陪伴我、关心我的老师的和同学们,谢谢!

电脑故障检测卡代码表

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页面寄存器的测试;即将检验视频存储器。测试扩展内

温馨提示

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

评论

0/150

提交评论