版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要模拟经营游戏是模拟游戏的一种。而模拟经营游戏就是由玩家去充当特定的角色,在这个虚拟的游戏世界进行自我发挥的经营。这个游戏世界可以是团体、公司、城市、国家、甚至是整个世界。模拟经营类的游戏游戏通常都会仿照现实中的模式,游戏的玩法跟人物的模型想法等都可以按照自己的需求定制或随机定制。一般来说,常见的模拟经营游戏的游戏主题无非是收集游戏资源,最后实现一家独大的成就;或者发展到一定程度(例如大富翁玩家资产处于第一位或遥遥领先)。模拟经营游戏最核心的是游戏玩法。值得一提的是模拟经营的游戏玩法越新颖,其受众用户群体越大,吸引的玩家也越多。一款出色的游戏想要被大众所接纳与喜爱,其本身就必须拥有闪光点,而这就要跟游戏的理念所挂勾。。模拟经营游戏也包括仅能离线(Offline)进行的类型,这是脱离线上玩家条件下的单机模拟经营,玩家需达到最后的游戏目标,运用自身或游戏内各种能力来获取胜利。模拟经营游戏跟角色扮演游戏不一样,并不是非常注重游戏中的剧情故事、以及游戏中人物的塑造;相同的是都直接模拟出游戏中所描绘的虚拟世界。餐厅模拟游戏便是其中的分支,玩家利用先用的资源通过自身的能力去塑造出无限的可能,玩家能在游戏中体验创业的乐趣,享受担任港式茶餐厅boss所带来前所未有的体验。关键词:Unity3D模拟游戏餐厅模拟
AbstractThesimulationmanagementgameisakindofsimulationgame.Playersplaytheroleofmanagerstomanagethevirtualrealworldinthegame.Itcanbeacity,acountry,aworld,acompany,oranothergroup.Virtualbusinessgamesgenerallysimulatereal-worldmodels,andthecharacters’ideasarerandomlycustomizedaccordingtorules.Manysimulationbusinessgamesendwiththeword"Tycoon".Thegoalofcommongamesistocompletelycontrolallresourcesthatcanbecontrolledinthegameandachievemonopoly;ortoacertainextent(forexample,enoughtechnologytoleadcitizensoutoftheearth).Thecoreofthesimulationmanagementgameisgameplay.Ingameplay,playersplayorcontrolacharacterinarealisticorfictionalworld.Theplayerisresponsibleforplayingthisroleanddevelopingtheroleplayedbysomeactionsunderastructuredrule.Theplayer'ssuccessandfailureinthisprocessdependsonaformalsystemofrulesorguidelines.
Simulatedbusinessgamesalsoincludetypesthatcanonlybeplayedoffline(offline).Playerscontrolapersonorateamtocompletethegamegoals,andusevariousabilitiestoachievevictory.Thesimulationmanagementgameisdifferentfromtherole-playinggame.Itdoesnotpaymuchattentiontothestoryinthegame,thesceneryofthevirtualworld,andtheshapingofthecharactersplayed;thesameisthattheydirectlysimulatethevirtualworlddepictedinthegame.Therestaurantsimulationgameisabranchofit.Playersusethefirst-handresourcestocreateunlimitedpossibilitiesthroughtheirowncapabilities.PlayerscanexperiencethefunofentrepreneurshipinthegameandenjoytheunprecedentedexperienceofbeingaHongKong-styletearestaurantboss.
Keywords:Unity3DSimulationgameRestaurantsimulation目录第一章绪论 绪论1.1开发意义及其发展前景本课题的意义是设计并实现一个模拟经营类游戏,基于港式茶餐厅的风格及其经营方式打造出一款新颖的餐馆经营游戏,同时从现实出发,为用户呈现出当今茶餐厅的经营方式、经营理念本课题的主要目标是设计与开发出一个基于Unity3D的模拟经营类游戏”TOP”,在单机游戏模式下用户将独自经营一家港式茶餐厅。以Unity3D作为开发游戏的工具,使用符合港式风的模型,构建符合港式茶餐厅主题的游戏场景,使用Unity3D自带的插件并且编写脚本代码,经历一个游戏开发周期,实现玩家可对游戏进行操作。构思独特的港式风游戏剧情,设计港式风UI界面,同时加入游戏外部文件等大量的游戏设计必要内容如柠檬茶、奶茶等港风理念令游戏的信息增大,并且随着游戏的进行,游戏中关键词港式茶档的理念,通过游戏内容展现出来。最终完成一款功能完善、实现了一定可玩性的主题类模拟经营游戏。国内外的发展状况时至今日,在国内3D游戏的研究已经非常普遍,甚至连许多高校都有教授游戏方向的专业。因为国内3D游戏开发技术引进时间比较晚,所以导致了在技术方面上我们与国外有很大的差距,其次,在游戏的开发与制作时,我国基本没有独立研发的游戏引擎,现阶段我国许多游戏公司开发时的选择是国外所开发的游戏引擎诸如寒霜引擎,同时国内开发游戏并不能排上一级游戏行列,价值也不高,这也是国内游戏一直被人诟病的主要原因。如今,Android和IOS是两种主流的手机操作系统,成为主流的原因,是在这两个操作系统基础上开发出大量的应用。因此,安卓系统与苹果系统现在已经占据了整个手机市场,为了使软件能够在两个平台同时兼容,于是出现了能够跨平台的软件移植,但是,跨平台的应用移植会出现很多难题以及bug需要修复,如开发语言不同,移植代价高等,但是游戏开发的圈子,Unity3D游戏引擎却必不会出现这些问题,在Unity3D中运用到虚拟机技术,独立于平台执行的游戏编译结果也是一个亮点。对于3D引擎的研究,我们国内还处于摸索阶段,需要足够的时间去发展,学习优秀的游戏引擎,吸收这些优秀的特点为己利用,对于我们将来无论是开发游戏还是开发游戏引擎都有很大帮助。第二章开发技术Unity3D相关介绍Unity3D是由UnityTechnologies公司开发的一个专业游戏引擎。值得一提的是Unity3D被高占比使用的原因在于使用Unity3D能够轻松的开发一款游戏,Unity3D能做到的事情非常之多,例如高帧率的三维动画、三维视频游戏、极其逼真地虚拟现实游戏等,最关键的是Unity3D实现了多个平台开发如安卓、PC、iOS等,这也令其深受游戏开发人员的重用。随着游戏产业发展越来越迅速,快速开发高质量游戏的需求已经逐渐占据重要地位,而Unity3D不仅可以提高开发效率,游戏渲染质量也属于中等偏上,在手游产业更是不可被取代,并且由于Unity3D的版权费比其他主流3D游戏引擎便宜很多,使得在国内越来越多游戏开发者使用该引擎进行商业化开发。在Unity3D中,将支持C#语言、JavaScript、Boo这3种语言来编写游戏脚本。并支持Shader的编写,本设计采用的编程语言为C#语言。2.1.1Unity脚本生命周期Unity程序脚本有一套比较完善的生命周期,在这个从唤醒函数到销毁函数都的生命周期中,有着一定的制约,那便是在开发过程中遵从自身的UnityMONO生命周期规则。下列是在Unity的生命周期中由系统内自身调用很重要的方法:(1)voidAwake(){}:脚本初始化的启动,将脚本唤醒,其后进行初始化工作,在Mono库中这是系统执行的第一个方法,并且只被执行一次在脚本的生命周期中。(2)voidOnEnable(){}:启用,物体启用时被调用。(3)voidStart(){}:开始处理,开始逻辑,关于这个方法的详细讲解指是在OnEnanleAwake()方法之后、Update()方法之前执行,而且只能够执行一次这个方法。(4)voidUpdate(){}:这个方法是正常更新逻辑,在游戏中的每帧都会被进行处理。而这个逻辑处理只能调用一次。(5)voidLateUpdate(){}:这个方法是推迟更新,执行时系统中会调用每一帧,但必须在Update()方法执行完后,此方法才能由系统去调用。(6)voidFixedUpdate(){}:固定更新,和帧频无关,和时间有关系。固定更新常用于移动模型等操作。(7)voidOnGUI(){}:此方法用于绘制界面系统,任何时候都在调用绘制界面,用于绘制系统的界面,处理按钮。(8)voidOnDisable(){}:禁用时候调用,和Active(false),物体被禁用时调用。(9)voidOnDestroy(){}:销毁,和OnDestroy(gameobject)调用,调用的条件是脚本被销毁时。根据Unity3D脚本中的生命周期,当在调用方法时,首先初始化的顺序,其次建立出Unity脚本生命周期方法调用过程顺序图如图2-1所示。图2-1Unity脚本生命周期方法调用过程顺序图2.1.2Unity跨平台技术Unity3D几乎是市场上最流行的游戏开发引擎了,由UnityTechnology(以下简称UT)公司开发,它可用于Windows和MacOSX系统(Linux系统实验版已发布)。最重要的是,它几乎可以导出到任意平台。Unity是一个优秀的游戏引擎。Unity中对各平台编译指令如表2-1Unity跨平台技术编译指令所示:表2-1Unity跨平台技术编译指令名称说明UNITY_EDITOR定义从游戏代码调用Unity编辑器脚本UNITY_ANDROID为Android平台的平台定义脚本UNITY_IPHONE为Iphone平台编译/执行的代码的平台定义脚本UNITY_STANDALONE_WIN为Windows独立的应用程序编译/执行代码时使用的脚本UNITY_STANDALONE_OSX专门用于MacOS(包括Universal、PPCandIntel架构)编译或执行的代码的平台物理引擎在3D游戏这种综合类应用当中,除了逼真的模拟出真实3D世界的环境效果,物理引擎也是必不可少的环境功能。在真实3D世界当中,物体与物体之间是存在相互作用与物理规律的。而在游戏环境中,在模拟刚体的前提下,如果是简单的物理运动,例如是游戏中简单的移动、加速等,这是可以通过一般的游戏引擎然后进行编程或编写脚本去实现功能。当开发游戏需要模拟复杂的物理规律,如弹起、滑动、碰撞、爆炸等效果时,比如编译底层算法会使得工程延误,这就与软件工程的思想产生矛盾。在3D游戏环境中,成熟的物理引擎将支持更复杂更真实的3D环境物理模拟。物理引擎的基本架构分为两个模块,碰撞检测与物理学世界。如图2-1所示。物理学世界模块物理学世界模块物理引擎系统碰撞检测模块物理引擎系统碰撞检测模块图2-1物理引擎结构示意图渲染引擎当3D场景各物体的位置信息以及场景本身的各种信息通过外界调用模块,输入到物理引擎中被接受,物理引擎即产生相应回馈从而产生物理效果。因调用模块的不同,输出的计算结果也不相同,但计算的方式是相同的:碰撞发生的地点、发生碰撞后物体的地点、物体与物体和物体与场景之间是否有碰撞发生。最后将通过计算得出结果再发送给已经调用的模块。物理引擎功能示意图如图2.3所示。渲染引擎位置信息位置信息物理引擎物理引擎网络传输网络传输图2-2物理引擎功能示意图Unity概念解释Scene场景,我们可以把它当作一部电影,储存了各种不同的资源,储存后的资源文件的后缀名都是Unity。编写的脚本中使用Scene类来表示。GameObject游戏对象,可以把其视为电影中的景物、道具、角色等等能够看见的物件。代码中使用GameObject类来表示。Light灯光,可以视作电影的灯光调节器,使用其可以任意调节整个虚拟世界的明暗。代码中用Light类表示,Light继承自Component,同样其身份为游戏对象的组件。Prefab预制件是对与自定义的一组游戏对象,开发者会预先配置,设置预制体相互位置,预制体的层级关系等等,然后把它们存储为模板形成一个整体。后续使用这个整体模板,进行的操作就是构建出一份游戏对象的拷贝。Asset资源,Unity中有很多资源,GameObject、Component其实都是资源,但很多时候,我们开发者说的资源指的是:网格、动画、贴图、材质、音频片段、字体等等。如果出现的游戏资源类型很多,那么对应的类也不同如表2-2名称文件格式网格:Meshfbx、obj等动画:Animationanim等贴图:Texturepsd、tif、png、jpeg等材质:Materialmat音频:AudioClipogg、wav、mp3等字体:Fontttf、fnt等在开发过程中,UnityEngine命名空间下方的Object类都会被资源类所继承,注意与CSharp默认空间中的Object不同。
第三章游戏需求分析3.1系统可行性分析3.1.1技术可行性分析本游戏是一款基于港式茶餐厅的风格及其经营方式的模拟经营类游戏,从现实出发,希望能够借此为用户呈现出当今茶餐厅的经营方式、经营理念。游戏平台面向是Windows,通过我自行对游戏内容的数据分析以及需求,同时我也考虑了开发环境、运行环境、设备要求,在技术上确定使用Unity3D能够开发出这款模拟经营游戏,在功能需求上可以通过现有的知识及自身需学习的知识去实现游戏功能。并且采用市面上模拟经营类的游戏大众化操作,能够大幅度降低对自身的游戏开发技术要求,让玩家在享受策略类游戏带来的乐趣。3.1.2经济可行性分析本游戏基于Unity3D开发的模拟经营游戏不需要任何经费成本,游戏中的模型场景皆是网络免费开源,因此在忽略成本的条件下能够最大限度的开发此游戏。同时本游戏所需资源皆是网络收集,游戏完成后不实现经济效益,即利用该游戏获取经济利益,所以从经济上开发此游戏是可行的。3.1.3法律可行性分析本游戏纯属个人开发并没有任何商业用途、没有开展商业活动、没有获取经济效益,因此,在利用网络上的素材基础的条件下开发此款游戏没有侵犯他人利益,即不存在不合法行为。在法律上开发此游戏是可行的。系统功能需求分析游戏功能划分根据模拟经营游戏TOP的设计需求与游戏的玩法,将整个游戏功能划分4个部分,分别是角色控制、商店功能、关卡功能、订单功能如图3-1游戏功能模块图所示。图3-1游戏功能模块划分游戏功能描述角色控制功能:玩家开始进入游戏后,能够使用鼠标操控服务员进行移动完成订单的出餐。使用鼠标操作简单易上手,注重玩家游戏体验。商店功能:在游戏商店中我增添了道具系统使得游戏性大大提高,丰富了游戏的玩法,道具分别有移速加成(即加快服务员的移动速度),订单立即完成(即随机立即完成订单)、服务员招募(即增加服务员数量)。金币系统的设置是为了商店系统能够顺利实现,在游戏中每完成一个订单,则增加10金币,金币可用于商店道具的购买。关卡功能:游戏中一共有三个关卡,越往后订单需求完成量越高难度越大,玩家在规定时间内完成任务则闯关成功可进入下一关,否则视为闯关失败。订单功能:订单是胜负判定、奖励的关键,游戏中订单事件会随机生成(订单菜单与港式茶餐厅有关,即奶茶、柠檬茶、西多士、碟头饭四种),一个外卖员对应一个订单,服务员出餐满足订单需求并成功送给外卖员订单才算完成。系统性能需求分析精确度保证游戏进行中的玩家数据操作精准,保证配置文件准确性与公平性,对游戏战斗结束的判定进行严谨的监控。时间特性游戏中的界面切换的响应时间在0.1-0.3秒内,加载页面的加载动画的响应时间在0.5-1秒内,点击效果与角色接触消失效果的响应时间在0.2-0.5秒内。适用性游戏适用于各大品牌的PC系统电脑,能够安全稳定运行,出现游戏闪退的几率较少。
第四章游戏系统设计4.1游戏系统总体设计本游戏系统是基于PC平台运行的3D第三人称模拟经营类游戏,游戏参照《QQ餐厅》开发,因此,游戏实现的功能在这两款游戏基础上进行扩展。根据这种情况,经初步的需求分析得出来表4-1所示整个游戏系统说明。表4-1游戏各系统说明名称说明主菜单系统用户对开始新游戏、游戏选项设置、查看游戏介绍、退出商店系统管理游戏中所有道具的生成胜负判定系统挑战管卡结束胜负判断,并产生奖励奖励系统用户可以通过完成订单的订单数量,领取相应的奖励游戏系统模块设计由于经营类游戏TOP需实现的功能较多,包括场景加载,读取和存取相关的数据,查看功能、设置等等。因此,为了提高开发该游戏的效率和方便管理游戏工程项目与游戏功能,游戏系统将采用设计原理——模块化的设计原理,即把游戏系统按照不同功能进行分块。根据游戏需求分析,在满足游戏基本功能的需求基础上,为了使游戏符合软件开发的高内聚,低耦合原则,即提高各个模块之间的独立性,各模块之间功能又密切相关。根据游戏系统用例建模,设计该游戏的目标系统,以玩家进入游戏为例。游戏用例图如图4-1图4-1游戏用例图数据模型设计人物订单人物订单分析,当这一关需要的数据超过我们想要的数据时候,就将其通过这关人物完成。这样设计可以将所有的订单数据集合在我们的核心脚本中,可以判断这关的所有情况。表4-2任务订单表数据类型数据名字实现的操作floatLevelTime//这一关用到的时间;floatLevelNeedPeopleNum//这一关需要完成的数量;floatLevelproducePeopleTime//产生人物的时间。floatLevelSHOPTime//商品时间关卡数据类型。关卡数据总共有三关每关根据不同的数量,进行不同的派单,让其有更多的丰富性。可以自行组装。这样设计可以将所有的关卡内需要的数据集合脚本中,判断这关的所有情况。表4-3关卡数据表数据类型数据名字实现的操作floatCurrentTime//这一关用到的时间;floatNeedPeopleNum//这一关需要完成的数量;floatCurrentproducePeopleTime//产生人物的时间。商品数据类型。在Core中,存储有核心的MHaveItem结构体,可以将他的所有商品加载在内存中。商品价格填写在脚本中,可以进行购买。做成类型核心控制的脚本,可以将所有的关键核心词放在我们的脚本中,方便操作。表4-4商品数据表数据类型数据名字实现的操作intCurrentGold//当前金币intItemSpeed//加速道具intItemOver//立即完成订单道具intItemAddNum//增加服务员道具intCurrentNpcNum//当前NPC的数量
第五章游戏系统实现UI设计模块实现5.1.1UI设计简介UI设计是指对在与软件进行交互的界面的整体设计。在人机交互、按钮界面的UI设计是重点关注。当我们制作一个游戏,需要游戏独特、有辨别性,游戏的操作能够符合用户群体的需求,满足其需求的条件下同时充分体现一个游戏的定位和特点,就需要优秀的UI设计。关于UI,Unity中自带UGUI可用于UI的设计,但根据游戏系统用例建模分析游戏功能模块涉及到UI较多,而且拥有完整的UI动画设计特效。本游戏在界面设计上采用了层次化的思想,把整个游戏中的全部界面独立开来,利用UGUI进行可视化界面设计,可即时查看到界面设计,对整个界面及时进行调整,不需要在程序调试时才可以看到游戏界面,大大提高了开发效率和维护成本。美观符合游戏主题的界面能够吸引用户,并且当使用UI实现了游戏操作方便,更容易上手体验。同时还能够避免用户在体验时出现太大的不适感,视觉上的效果越好便越利于用户的理解和使用。通常情况下,UI界面设计时能够反映用户的需求,并不是开发人员特意为之。所有的操作的设计都是以用户体验为出发点,因为所有的用户都拥有自己的理解和使用方法。界面整洁美观,游戏整体风格与产品级别便越高。5.1.2开始界面UI设计创建UGUI中2DUI组件,在Hierarchy视图下UIRoot中Camera创建子对象面板Canvas、Canvas,Canvas面板用于存储开始游戏按钮,声音调节按钮和设置按钮;Panel2面板为玩家信息操作面板,在此面板上,玩家可以对玩家信息进行读取、删除、新建操作。点击开始游戏按钮,触发按钮事件,从Panel面板切换至Panel2面板,代码实现如下:publicStartUIm_StartUI;[System.Serializable]publicstructStartUI{publicButtonDesGameBtn;publicButtonStartGameBtn;publicButtonQuitGameBtn;publicGameObjectDesObj;publicButtonDesQuitBtn;}privatevoidStart(){m_StartUI.DesGameBtn.onClick.AddListener(delegate{m_StartUI.DesObj.gameObject.SetActive(true);});m_StartUI.DesQuitBtn.onClick.AddListener(delegate{m_StartUI.DesObj.gameObject.SetActive(false);});if(Core.Instance){m_StartUI.StartGameBtn.onClick.AddListener(delegate{Core.Instance.LoadScene("02");});m_StartUI.QuitGameBtn.onClick.AddListener(delegate{Application.Quit();});}}}图4-1开始界面菜单点击开始游戏,通过异步加载,从场景Start加载到场景Menu。加载菜单Menu场景代码实现如下:Application.LoadLevel(“Menu”);5.1.3菜单界面UI设计菜单界面各功能UI设计可以归为两类:1.游戏简介,开始游戏和退出游戏,这三个系统的显示都需要按序按位置排列,并调用配置文件对每个对象属性进行赋值;2.关卡系统与其他功能,关卡系统设计方式是将所有关卡按钮名称统一格式命名,在点击某个按钮时,传入按钮名称,触发对应按钮事件。选择商店系统中UI商品物品Item和关卡系统选关UI加以详细描述,其余就不一赘述了。UGUI实现等大等距排序显示运用到的组件:ScrollView组件和Grid组件。ScrollView组件作用是设置一块可视区域,在Grid组件下的子对象超过其可视区域就无法在界面中显示,并可以实现子对象从左到右排列。考虑后续维护和拓展的简便,将UI商品物品Item展示模型制作成预制体,通过代码加载到Grid组件下作为子对象,并加载配置文件数据。如图4-1菜单面板设计如图4-2。数据管理加载如图4-3。图4-1菜单界面图4-2菜单面板设计图4-3数据管理加载在场景加载中,存储着这些人物属性道具,以及道具数据等等。数据管理管理模块实现在模拟经营游戏中,数据的读取与存储是最为重要的,游戏中数据包括静态数据和动态数据,静态数据即为游戏中固定的某些数值,如地图关卡数据,服务员属性数据,外卖员属性数据等;动态数据也称为玩家数据,包含玩家花钱购买的游戏币(金币),关卡的解锁和玩家获得的星级等。静态数据管理关于静态数据,Unity3D工程中使用配置文件一般使用Txt、Xml、Json、Db(数据库),四种格式文件对比如下:Txt:开发人员必须设定格式、封装读取的方式。设定与封装因人而异,重点是只能够读取。Xml:标签语言,已规定格式,系统中提供读取和修改等相关API,操作方便。Json:采用键值对的方式去进行数据的存储,可在任何平台下使用,普遍被客户端与服务端通讯采用,存储相等数据信息下文件要比Xml文件小,还可以只进行值存储(不需要键),更加缩小了文件的体积,适合在移动端进行联网游戏的通信操作。db:适合复杂数据和敏感数据,增删该查非常方便。根据本设计的需求,选用了Xml格式作为配置文件格式,方便信息数据和地图数据的加载。Xml格式的配置文件一般放在由Untiy自主管理模式的Resources文件夹中,在此文件夹下当需要读取资源可通过Resources.Load()读取。通常所有资源都可读取。Unity读取Xml文件的步骤如下:新建一个TextAsset类型的成员MapXml,调用Resources.Load()方法从Resources文件夹下读取相应的Xml文件的数据。例如:MapXml=Resources.Load<TextAsset>("XML/Map");创建XmlDocument新对象xmlDoc,关联并解析MapXml.text。获取列表数值,获取子节点。例如:mapList=xmlDoc.SelectSingleNode("MapConfig/Map").ChildNodes;如图4-4图4-4数据管理服务员寻路模块实现寻路网格设置NavMesh(导航网格)是Unity3D自带的一种自动寻路技术,可以在开发的虚拟游戏世界中实现动态物体自动寻路,该寻论技术能够将游戏中复杂的结构组织关系转化成带有一定信息的网格,在这些网格的基础上系统计算后得出最优路线,以此来实现自动寻路。简单来说就是为需要的物体添加NavMeshAgent组件,并设置适当的参数。一般需要设置物体的半径、高度、速度、加速度、距离目标的停止距离。当需要这个物体进行导航移动时,我们需要给导航物体添加一个条件,即挂载导航组件,这个导航物体将会自动寻路他计算出最合适的路线,并沿该线路到达我们设定的目标点。点击进行寻路的物体,并添加在Unity3D右侧的导航栏选中Component——Navigation——NavMeshA gent组件,然后在导航栏打开Window——Navigation窗口,在Navigation窗口选择Bake,选择后我们需要再次选择右下角的Bake。在每一个服务员身上挂载NavMeshAgent进行烘培场景,让AI可以自动寻路。如图4-8所示:图4-8NavMesh属性表服务员寻路导航核心代码usingUnityEngine;usingUnityEngine.UI;publicvoidOverShop(){gameObject.GetComponent<UnityEngine.AI.NavMeshAgent>().destination=StartVector3;}publicvoidSetdestination(PeopleNpcpeopleNpc){gameObject.GetComponent<UnityEngine.AI.NavMeshAgent>().destination=peopleNpc.transform.position;}音效模块模块实现该功能的作用是玩家设置背景音乐以及音效。当我们需实现背景音乐与音效功能时,玩家可以在音效设置界面下进行背景音乐的选择与音效的音量大小控制。表2-1游戏设置用例描述用例编号201用例名称游戏设置用例概述调整背景音乐与音效的音量以及关闭菜单和退出游戏参与者玩家前置条件玩家启动系统:想要对游戏进行设置后置条件游戏属性被改变基本事件流步骤活动1在主界面点击“游戏设置”按钮以此进入游戏“设置界面”2在游戏设置界面中,并在“音乐设置”模块下,点击“播放音效”以此进行音效的设置3调整音量大小或静音规则与约束点击按钮可以得到对应的响应事件核心切换音乐代码分析:publicstringSetAudioSourceClip(){AudioIndex++;AudioIndex=AudioIndex>=AudioClips.Length?0:AudioIndex;AudioSource.clip=AudioClips[AudioIndex];AudioSource.Play();returnmusicNamestr[AudioIndex];}5.5地形实现模块实现5.5.1创建地形组件当我们开发一款游戏搭建场景需要在Unity3D创建地形时,可以选择使用用Terrain部件。我创建的方法是在Unity3D右侧的菜单栏中选择GameObject->3DObject->Terrain。在本次开发游戏时创造的物体默认id是Terrain.然后我对其进行了简单的编写。其次在Herarchy框中选用,在Inspector里面能够看到这个部件的每一个附属。也就能找到Terrain组件了。接下来的步骤,首先创造地形时点击画笔图案按钮,选择下拉菜单,同时在下拉菜单中能够使用升降地面的功能,。值得注意的是在下拉菜单里Texture使用地面的贴图。4.6.2编辑Terrain地形组件1.在hierarchy中选中地形“Terrain”,Inspector里面,点addcomponet,输入“TerrainCollider”,点击就有了。2.还是选中地形,在菜单栏里,选Component->physics->TerrainCollider.5.6订单完成模块模块实现订单完成判断依据就是,当服务员和外卖NPC的碰撞盒进行碰撞时,将触发订单完成的判断依据,在FightManager.cs中,进行计算添加完成的商品,然后将Npc消除。核心代码分析如下:publicvoidRemovePeopleNpc(GameObjectobj,boolisShopOver){CurrentPeopleNpcs.Remove(obj.GetComponent<PeopleNpc>());obj.GetComponent<PeopleNpc>().DestroyPeopleNpc();if(isShopOver){m_CurrentLevel.NeedPeopleNum++;Core.Instance.MHaveItem.CurrentGold+=10;}else{Core.Instance.MHaveItem.CurrentGold-=10;}}在完成订单时,m_CurrentLevel.NeedPeopleNum+1。Update()中,会一直判断,当m_CurrentLevel.NeedPeopleNum大于我们这一关所需要的完成订单时,就顺利通关这一关。5.7场景切换模块实现在游戏过程中,某种特定情况下会进行场景切换,例如:玩家在开始界面创建新游戏或读取存档后需要切换到菜单场景、玩家选择关卡挑战后需要进入战斗(地图)场景、挑战关卡结束后选择返回菜单或者主界面等,这一系列操作都需要场景资源加载。但加载资源的过程会引起游戏界面的卡顿,特别是加载资源过大时,会造成游戏一段时间处于卡死状态,这会引起玩家的不满,甚至反感。为了解决这类问题,让游戏保持良好的交互性,在需要场景加载时,使用异步加载。所谓的异步加载,就是当加载的场景或者资源较大时,先加载一个极小的场景,在小场景运行同时加载大场景资源,等大场景资源加载完毕后,跳转到需要的场景。例如:A场景到B场景,加载过程如图4.5所示:图4.5异步加载过程图实现代码如下:publicUISpriteLoadingSlider;//加载条publicUILabelLoadingLabel;//loading预制体privatefloattargetValue;//滑动条显示数值privateAsyncOperationasync;//加载资源进度privatefloatloadingSpeed=0.3f;//滑动条加载速度voidStart(){StartCoroutine(loadScene());LoadingSlider.fillAmount=0;}IEnumeratorloadScene(){async=Application.LoadLevelAsync(PlayerInfo.Instance.Scenes);//阻止当加载完成自动切换async.allowSceneActivation=false;yieldreturnasync;}voidUpdate(){targetValue=gress;if(gress>=0.9f){//gress的值最大为0.9targetValue=1.0f;}if(targetValue!=LoadingSlider.fillAmount){//插值运算LoadingSlider.fillAmount=Mathf.Lerp(LoadingSlider.fillAmount,targetValue,Time.deltaTime*loadingSpeed);if(Mathf.Abs(LoadingSlider.fillAmount-targetValue)<0.01f){LoadingSlider.fillAmount=targetValue;}}LoadingLabel.text="已加载:"+((int)(LoadingSlider.fillAmount*100)).ToString()+"%";if((int)(LoadingSlider.fillAmount*100)==100){//允许异步加载完毕后自动切换场景async.allowSceneActivation=true;}}通过异步加载,在玩家在开始界面创建游戏或者读取存档的之后加载菜单界面时,跳转到已制作好的Loading界面,在Loading界面观看一些设计好的加载动画、图片或者文字,消磨加载资源等待的时间,从而达到游戏流畅效果。在本设计中,异步加载不仅仅用于开始界面与菜单界面的切换,也用于关卡选择后切换于战斗界面等。
第六章游戏测试6.1测试目的游戏测试的目的是比较游戏需求的定义,在不影响功能的条件下,发现与游戏初期定义不一致或与之矛盾的地方,发现尽可能多的缺陷,以此来验证游戏的功能和性能等满足其规约所指定的要求。设计中出现BUG是不可避免的,经过严格的测试,将其完善。通过对本设计的测试,将尽可能的发现游戏中的存在的错误或者不足,加以完善。6.2黑盒测试黑盒测试,被称作为功能测试。它测试以确定功能是否可以正常使用,专业的测试人员在整个测试过程中,同时在对程序内部结构和内部特性不进行考虑的情况下,并且测试人员会把程序看作一个完全封闭并且不能打开的黑盒子,需要严谨认真负责进行对程序的多个接口测试。按照我的理解,黑盒测试内容时只会检查程序功能有无正常使用,有无按照需求规格说明书的规定,程序又是否有无正确地接收输入数据并最终产生出正确的输出信息。[10]下面使用黑盒测试中的等价类划分法对具有代表作用的类型进行测试,根据游戏设计过程难易度判断,列出以下4种代表性的类型:1.点击商店按钮2.选择关卡3.点击开始游戏4.关卡挑战胜负,划分等价类并对其进行编号,如表6-1等价类设计用例表表6-1等价类设计输入数据有效等价类无效等价类点击商店按钮点击商店按钮点击商店按钮选择关卡3选择关卡3点击关卡2点击开始游戏点击开始游戏点击点击开始游戏条件以外的部分关卡挑战胜负关卡挑战胜负关卡挑战负以上是等价类设计的数据。6.3游戏测试用例本小节将在Unity3D进行游戏的构造指令,并将游戏发布到本地,测试各个功能模块的运行情况,保证每个游戏功能能够正常运行,保证游戏的完整性和可玩性。游戏测试用例如下表6-2游戏测试用例页面表6-2游戏测试用例页面测试模块前置条件操作步骤预期结果实际结果备注菜单界面UI进入游戏点击主菜单按钮,对所有按钮进行测试主菜单按钮响应正常触发所有事件,功能正常使用结果如预期一致检测成功音效设置进入游戏后,打开音效管理UI界面拉动音量调节器调节音量大小,切换背景音乐可自由控制背景音乐音量大小,同时能够切换背景音乐结果如预期一致检测成功订单功能进入游戏控制服务员完成订单并交给外卖员操控服务员将订单的餐品送到外卖员处服务员与外卖员碰撞后订单完成结果如预期一致检测成功商店功能进入游戏点击商店UI,进入商店购买道具成功购买道具,仓库道具库存数量增加结果如预期一致检测成功道具功能游戏中道具仓库库存大于0游戏进行中点击道具道具功能成功实现,触发道具效果结果如预期一致检测成功人物寻路功能进入游戏点击服务员头像控制其进行游戏服务员能够根据玩家指示选择最优路线到达目的地结果如预期一致检测成功金币系统进入游戏玩家进行游戏完成游戏任务玩家在游戏中每完成一个订单金币+10,当订单失败则金币-10结果如预期一致检测成功UI按钮位于游戏主页面点击所有UI按钮所有UI按钮点击后均能够触发事件结果如预期一致检测成功经测试本游戏Top已经具备一定的可玩性和完整性。
第七章总结与展望7.1项目总结本人经过这几个月的努力,一款参照PC平台由Unity3D引擎开发的模拟经营类游戏TOP终于划上句号。回想起这大半年来,遇到很多开发难题,不过还好总算完成了作品,不负自己的汗水,也不负指导老师的孜孜不悔的解惑,完成了自己的一个心愿,给自己交一份满意的答卷。根据自己玩过的经营类型游戏相比,感觉经营游戏的制作相对其他类型游戏来说比较简单,但经过自己的一整套制作流程下来,发现没有一个游戏是简单的。从本人一开始着手制作时,出现的问题层出不穷,深刻地认识到自己对于游戏开发方面以及Unity3D的知识还远远不够。于是乎我从网上重新学习游戏开发流程,从游戏初期的策划、游戏框架搭建到游戏功能实现,这个过程中一步步的学习、以及总结出的经验让我获益匪浅。虽然该游戏能够完整展示出来,且有一定的趣味性、耐玩性,但当中还存在着一些入门者开发的通常编程毛病和本人目前水平解决不了的BUG。比如商店系统的展示信息在策划的初期没有过多的文案策划;没有详细的规划好各个脚本的负责等,但最终还是完成了这款游戏。本文的主要工作如下:研究模拟经营类游戏的类型,总结经营类游戏的核心玩法,分析当下的餐厅经营游戏模式,运用unity3d开发游戏。完成Top餐厅模拟游戏的功能需求分析,总结出最核心的功能需求,菜单功能、商店功能、关卡功能、订单功能,同时每个功能里包含了更细微的功能。利用网上现学的单列加载修改游戏中的数值及属性。使用unity3d自带的Navmesh寻路算法作为npc移动的基础。7.2展望随着毕业设计的完成,也意味着我的大学生涯的结束了。毕业设计期间也把自己多年来积累的知识付诸实践,虽然很苦很累,但却过得非常充实,且收获颇丰。尽管在设计作品过程中遇到了各种各样的困难,但每当通过自己独立思考、系统分析问题之后解决了一个又一个难题,也更加坚定了自己的信心,也更加明白了大学不仅仅是学习教材上的理论和技术,更重要的是书本上所学不到的东西,如独立思考、系统分析问题解决问题的能力,这是无论各行各业都是必备的能力,这也将使我以后的人生受益无穷。我相信大学四年的收获会带给我以后的人生巨大的帮助。
参考文献[1]朱晴.Unity3D开发工具在3D游戏开发中的应用2019期刊[2]李兵川基于Unity3D游戏开发流程分析[J]..
山东工业技术.2018(07)[3]张旭,陈玉玲.基于Unity3D的飞机大作战开发[J].
数码世界.2016(11)[4]汪瑞.基于Unity3D的多通道下服务器客户端同步[J].
现代计算机(专业版).2015(24)[5]彭伟国.
Unity游戏开发课程一体化教学过程设计研究[J].彭伟国.
河南教育(高教).2017(02)[6]袁田琛,胡新荣,赵俭辉.
基于LeapMotion和Unity3D的体感游戏开发与集成[J].电脑知识与技术.2015(13)[7]栾晓,于洪.智能游戏开发与设计课程教学方法探索[J].
计算机教育.2016(10)[8]王平.C语言中数据库接口的设计与实现.《计算机科学与应用》.2019(08)[9]朱京瑞. DB2数据库物理设计与逻辑设计的实践应用]. 《数码设计(下)》.2019(11)[10]阎梦真.陈宏利.3D游戏开发技术设计与应用.中国新通信.2016(6)
致谢匆匆时光大学生活即将结束,这一份灌注了精力与汗水的论文便作为画上我大学生涯句号的墨水吧。2020注定是不寻常的一年,今年年初疫情的大爆发使得我们国家处于水生火热,于是乎我听从学校的安排停止了正在实习的工作。在家的这段时间我的精力放在毕业设计上,期间我得到过许多帮助与鼓励,最终我的毕业设计得以顺利完成。首先,我非常感谢我的导师麦日升老师对我的指导与帮助。第一次认识麦老师是在选修课上,课堂上的麦老师严谨认真,很多的学术上的难题在他的讲解下理解起来非常轻松,我想这与他的教学方式有着密不可分的关系,麦老师注重实操,记得当时选修课程是制作一款监控软件,麦老师讲完的知识点我们都会有充足的时间去测试代码,疑惑向他请教总会耐心的跟我们讲解,。在实习期间,麦老师时刻关心我们的毕业设计进度与实习近况。同时我衷心感谢大学生涯中遇到的老师,给了我莫大的帮助。师者,所以传道、授业、解惑也。临表涕零,不知所言。我感谢朋友和同学的包容和帮助同样让我学得自在,获益匪浅:我感谢我的家人。灿灿萱草花,罗生北堂下。南风吹其心,摇摇为谁吐?欲报之德,昊天罔极。论文写到这里,心里惴惴不安。是时候为过去写上一个句点了,就如这首歌词里所说,“今别离,永相依,且行且珍惜。”
怎样提高电脑系统运行速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。1.加快系统启动速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。(1)MsconfigWindowsXP的启动速度在系统安装初期还比较快,但随着安装的软件不断增多,系统的启动速度会越来越慢,这是由于许多软件把自己加在了启动程序中,这样开机即需运行,大大降低了启动速度,而且也占用了大量的系统资源。对于这样一些程序,我们可以通过系统配置实用程序Msconfig将它们从启动组中排除出去。选择“开始”菜单中的“运行”命令,在“运行”对话框中键入“Msconfig”,回车后会弹出“系统配置实用程序”对话框,选择其中的“启动”选项卡(如图1),该选项卡中列出了系统启动时加载的项目及来源,仔细查看每个项目是否需要自动加载,否则清除项目前的复选框,加载的项目越少,启动的速度就越快。设置完成后需要重新启动方能生效。(2)BootvisBootvis是微软提供的一个启动优化工具,可提高WindowsXP的启动速度。用BootVis提升WindowsXP的启动速度必须按照正确的顺序进行操作,否则将不会起到提速的效果。其正确的操作方法如下:启动Bootvis,从其主窗口(如图2)中选择“工具”菜单下的“选项”命令,在“符号路径”处键入Bootvis的安装路径,如“C:\ProgramFiles\Bootvis”,单击“保存”退出。从“跟踪”菜单中选择“下次引导”命令,会弹出“重复跟踪”对话框,单击“确定”按钮,BootVis将引导WindowsXP重新启动,默认的重新启动时间是10秒。系统重新启动后,BootVis自动开始运行并记录启动进程,生成启动进程的相关BIN文件,并把这个记录文件自动命名为TRACE_BOOT_1_1。程序记录完启动进程文件后,会重新启动BootVis主界面,在“文件”菜单中选择刚刚生成的启动进程文件“TRACE_BOOT_1_1”。窗口中即会出现“CPU>使用”、“磁盘I/O”、“磁盘使用”、“驱动程序延迟”等几项具体图例供我们分析,不过最好还是让BootVis程序来自动进行分析:从“跟踪”菜单中选择“系统优化”命令,程序会再次重新启动计算机,并分析启动进程文件,从而使计算机启动得更快。(3)禁用多余的服务WindowsXP在启动时会有众多程序或服务被调入到系统的内存中,它们往往用来控制Windows系统的硬件设备、内存、文件管理或者其他重要的系统功能。但这些服务有很多对我们用途不大甚至根本没有用,它们的存在会占用内存和系统资源,所以应该将它们禁用,这样最多可以节省70MB的内存空间,系统速度自然也会有很大的提高。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“services.msc”后回车,即可打开“服务”窗口。窗口的服务列表中列出了系统提供的所有服务的名称、状态及启动类型。要修改某个服务,可从列表双击它,会弹出它的属性对话框(如图3),你可从“常规”选项卡对服务进行修改,通过单击“启动”、“停止”、“暂停”、“恢复”四个按钮来修改服务的状态,并可从“启动类型”下拉列表中修改启动类型,启动类型有“自动”、“手动”、“已禁用”三种。如果要禁止某个服务在启动自动加载,可将其启动类型改为“已禁用”。WindowsXP提供的所有服务有36个默认是自动启动的,实际上,其中只有8个是必须保留的(见下表),其他的则可根据自己的需要进行设置,每种服务的作用在软件中有提示。4)修改注册表来减少预读取,减少进度条等待时间WindowsXP在启动过程中会出现一个进度条,我们可以通过修改注册表,让进度条只跑一圈就进入登录画面。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“regedit”命令后回车,即可启动注册表编辑器,在注册表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,选择其下的EnablePrefetcher键,把它的键值改为“1”即可。(5)减少开机磁盘扫描等待时间当Windows日志中记录有非正常关机、死机引起的重新启动,系统就会自动在启动的时候运行磁盘扫描程序。在默认情况下,扫描每个分区前会等待10秒钟,如果每个分区都要等上10秒才能开始进行扫描,再加上扫描本身需要的时间,会耗费相当长的时间才能完成启动过程。对于这种情况我们可以设置取消磁盘扫描的等待时间,甚至禁止对某个磁盘分区进行扫描。选择“开始→运行”,在运行对话框中键入“chkntfs/t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/xc:”命令;如果要恢复对C盘的扫描,可使用“chkntfs/dc:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。2.提高系统运行速度提升系统运行速度的思路与加快启动的速度类似:尽量优化软硬件设置,减轻系统负担。以下是一些常用的优化手段。(1)设置处理器二级缓存容量WindowsXP无法自动检测处理器的二级缓存容量,需要我们自己在注册表中手动设置,首先打开注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,选择其下的“SecondLevelDataCache”,根据自己所用的处理器设置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系统缓存同样也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”键值从0改为1,WindowsXP就会把除了4M之外的系统内存全部分配到文件系统缓存中,这样XP的内核能够在内存中运行,大大提高系统速度。通常来说,该优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。需要注意的是必须有256M以上的内存,激活LargeSystemCache才可起到正面的作用,否则不要轻易改动它。(3)改进输入/输出性能这个优化能够提升系统进行大容量文件传输时的性能,不过这只对服务器用户才有实在意义。我们可在中新建一个DWORD(双字节值)键值,命名为IOPageLockLimit。一般情况下把数据设置8~16MB之间性能最好,要记住这个值是用字节来计算的,例如你要分配10MB的话,就是10×?1024×1024,也就是10485760。这里的优化也需要你的机器拥有大于256M的内存。(4)禁用内存页面调度在正常情况下,XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。在注册表中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”下的“DisablePagingExecutive”键,把它的值从0改为1即可禁止内存页面调度了。(5)关闭自动重新启动功能当WindowsXP遇到严重问题时便会突然重新开机,可从注册表将此功能取消。打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”将AutoReboot键的Dword值更改为0,重新启动后设置即可生效。(6)改变视觉效果WindowsXP在默认情况下启用了几乎所有的视觉效果,如淡入淡出、在菜单下显示阴影。这些视觉效果虽然漂亮,但对系统性能会有一定的影响,有时甚至造成应用软件在运行时出现停顿。一般情况下建议少用或者取消这些视觉效果。选择桌面上“我的电脑”图标,单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,打开“系统属性”对话框。选择“高级”选项卡,在其中的“性能”栏中单击“设置”按钮,会弹出“性能选项”对话框(如图4),可选择“调整为最佳性能”单选框来关闭所有的视觉效果,也可选择“自定义”然后选择自己需要的视觉效果。(7)合理设置页面虚拟内存同样也是在“性能选项”对话框中,选择“高级”选项卡,在其中的“虚拟内存”栏中单击“更改”按钮,接下来选择虚拟内存为“自定义大小”,然后设置其数值。一般情况下,把虚拟设为不小于256M,不大于382M比较合适,而且最大值和最小值最好一样。(8)修改外观方案WindowsXP默认的外观方案虽然漂亮,但对系统资源的占用也多,可将其改为经典外观以获得更好的性能。在桌面空白位置单击鼠标右键,从弹出的快捷菜单中选择“属性”命令,会打开“显示属性”对话框,在“主题”选项卡选择主题为“Windows经典”,即可将外观修改为更为经济的Windows经典外观。(9)取消XP对ZIP支持WindowsXP在默认情况下打开了对zip文件支持,这要占用一定的系统资源,可选择“开始→运行”,在“运行”对话框中键入“regsvr32/uzipfldr.dll”,回车确认即可取消XP对ZIP解压缩的支持,从而节省系统资源。(10)关闭Dr.WatsonDr.Watson是WindowsXP的一个崩溃分析工具,它会在应用程序崩溃的时候自动弹出,并且在默认情况下,它会将与出错有关的内存保存为DUMP文件以供程序员分析。不过,记录DUMP文件对普通用户则毫无帮助,反而会带来很大的不便:由于Dr.Watson在应用程序崩溃时会对内存进行DUMP记录,将出现长时间硬盘读写操作,要很长一断时间程序才能关闭,并且DUMP文件还会占用大量磁盘空间。要关闭Dr.Watson可打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug”分支,双击其下的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就取消它的运行了。同样,我们可以把所有具备调试功能的选项取消,比如蓝屏时出现的memory.dmp,可在“系统属性”对话框中选择“高级”选项卡,单击“启动和故障恢复”栏中的“设置”按钮,并在弹出的“启动和故障恢复”对话框中选择“写入调试信息”为“无”(如图5)。(11)启动硬盘/光驱DMA模式打开“系统属性”对话框,选择“硬件”选择卡中的“设备管理器”按钮,打开“设备管理器”窗口,在设备列表中选择“IDEATA/ATAPI控制器”,双击“主要IDE通道”或“次要IDE通过”,在其属性对话框的“高级设置”选项卡中检查DMA模式是否已启动,一般来说如果设备支持,系统就会自动打开DMA功能,如果没有打开可将“传输模式”设为“DMA(若可用)”。(12)关掉不用的设备WindowsXP总是尽可能为电脑的所有设备安装驱动程序并进行管理,这不仅会减慢系统启动的速度,同时也造成了系统资源的大量占用。针对这一情况,你可在设备管理器中,将PCMCIA卡、调制解调器、红外线设备、打印机端口(LPT1)或者串口(COM1)等不常用的设备停用,方法是双击要停用的设备,在其属性对话框中的“常规”选项卡中选择“不要使用这个设备(停用)”。在重新启动设置即可生效,当需要使用这些设备时再从设备管理器中启用它们。(13)关闭错误报告当应用程序出错时,会弹出发送错误报告的窗口,其实这样的错误报告对普通用户而言几乎没有任何意义,关闭它是明智的选择。在“系统属性”对话框中选择“高级”选项卡,单击“错误报告”按钮,在弹出的“错误汇报”对话框中,选择“禁用错误汇报”单选项,最后单击“确定”即可。另外我们也可以从组策略中关闭错误报告:从“运行”中键入“gpedit.msc”,运行“组策略编辑器”,展开“计算机配置→管理模板→系统→错误报告功能”,双击右边设置栏中的“报告错误”,在弹出的“属性”对话框中选择“已禁用”单选框即可将“报告错误”禁用。(14)关闭自动更新“自动更新”功能对许多WindowsXP用户而言并不是必需的,可将其关闭以节省系统资源。在“我的电脑”上单击鼠标右键,从快捷菜单中选择“属性”命令,选择“系统属性”对话框中的“自动更新”选项卡,勾选“关闭自动更新,我将手动更新计算机”单选框,单击“确定”按钮即可关闭自动更新功能。如果在“服务”已经将“AutomaticUpdates”服务关闭,“系统属性”对话框中的“自动更新”选项卡就不能进行任何设置了。(15)去掉菜单延迟去掉菜单弹出时的延迟,可以在一定程度上加快XP。要修改的键值位置在“HKEY_CURRENT_USER\ControlPanel\Desktop”。修改其下的“MenuShowDelay”键,把默认的400修改为0,按F5刷新注册表即可生效。(16)清除预读文件WindowsXP的预读设置虽然可以提高系统速度,但是使用一段时间后,预读文件夹里的文件数量会变得相当庞大,导致系统搜索花费的时间变长。而且有些应用程序会产生死链接文件,更加重了系统搜索的负担。所以,应该定期删除这些预读文件。预计文件存放在WindowsXP系统文件夹的Prefetch文件夹中,该文件夹下的所有文件均可删除。(17)关闭自动播放功能在WindowsXP中,当往光驱中放入光盘或将USB硬盘接上电脑时,系统都会自动将光驱或USB硬盘扫描一遍,同时提示你是否播放里面的图片、视频、音乐等文件,如果是拥有多个分区的大容量的USB硬盘,扫描会耗费很长的时间,而且你得多次手动关闭提示窗口,非常麻烦。这种情况下我们可以将WindowsXP的自动播放功能关闭。运行“组策略”程序。在组策略窗口左边栏中,打开“计算机配置”,选择“管理模板”下的“系统”,然后在右边的配置栏中找到“关闭自动播放”并双击它,会弹出“关闭自动播放属性”对话框。在其中“设置”选项卡中选择“已启用”,“关闭自动播放”下拉列表中选择“所有驱动器”(如图6)。这样以后就不用担心WindowsXP的“自动播放”功能带来的麻烦了。如果你只是想禁止系统扫描某个驱动器(如USB硬盘)上的文件,可采用下面的方法。先连上你的USB硬盘,让系统将它识别出来。然后打开“我的电脑”,选择USB硬盘上的某个分区,按鼠标右键,会弹出磁盘属性窗口,选取“自动播放”选项卡,将所有内容的类型都选择为不执行操作。如果USB硬盘有多个分区,对所有分区都进行同样的操作,这样当你将USB驱动器拔掉再重新接上时,系统会将USB硬盘识别出来,而不会反复问你是否播放USB硬盘中的文件了。3.加快关机速度WindowsXP的关机速度要慢于启动速度,特别有些任务还需要手工结束,更加延缓了关机速度。因此,要加快关机速度,首先要开启WindowsXP的自动结束任务功能。具体步骤是:从注册表中找到“HKEY_CURRENT_USER\ControlPanel\Desktop”,把“AutoEndTasks”的键值设置为1即可。然后再修改“HungAppTimeout”为“4000(或更小)”(预设为5000),该键值同样也在“HKEY_CURRENT_USER\ControlPanel\Desktop”下;最后一步再找到“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\”,同样把WaitToKillServiceTimeout设置为“4000”;通过这样设置后的关机速度明显要加快了。够全面吧~~◆二、硬件优化设置◆1、关掉不用的设备
在设备管理器中,将PCMCIA卡、调制解调器、红外线设备、打印机端口(LPT1)或者串口(COM1)等不常用的设备停用,在要停用设备属性对话框中的“常规”选项卡中选择“不要使用这个设备(停用)”。当需要使用这些设备时再从设备管理器中启用它们。◆2、内存性能优化
WindowsXP中有几个选项可以优化内存性能,它们全都在注册表下面位置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession
ManagerMemory
Management
1)禁用内存页面调度(Paging
Executive)
XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。256M以上内存才使用这个设置。把“DisablePagingExecutive”的值从0改为1就可以禁止内存页面调度了。
2)提升系统缓存
必须有256M以上的内存,才激活它。把LargeSystemCache键值从0改为1,一般来说,这项优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。
3)输入/输出性能
内存大于256M才更改这里的值,这个优化只对server(服务器)用户才有实在意义,它能够提升系统进行大容量文件传输时的性能。建一个DWORD(双字节值)键值,命名为IOPageLockLimit,数值设8M-16M字节之间性能最好,具体设什么值,可试试哪个值可获得最佳性能。这个值是用字节来计算的,比如你要分配12M,就是12×1024×1024,也就是12582912。◆3、启动硬盘/光驱DMA模式
“系统属性”-“硬件”-“设备管理器”,在设备列表中选择“IDE
ATA/ATAPI控制器”,双击“主要
IDE
通道”或“次要
IDE
通道”,在其属性对话框的“高级设置”选项卡中检查DMA模式是否已启动,一般来说如果设备支持,系统就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 熏制肉制品车间行业深度调研及发展战略咨询报告
- 自动化物流追踪与定位企业制定与实施新质生产力战略分析报告
- 2026湖南郴州市桂东县事业单位选聘11人笔试备考试题及答案详解
- 地沟及盖板工程风险防控方案
- 电气自动化控制技术方案
- 2026吉林松原乾安县招聘公益性岗位人员100人考试备考题库及答案详解
- 自动化与人工智能融合提升企业运营效率的策略研究
- 2026年宿州砀山县城区学校公开补充教师192名笔试模拟试题及答案详解
- 2026年甘肃定西临洮县城区学校选聘教师150人笔试备考题库及答案详解
- 2026年大庆市让胡路区法检系统书记员招聘笔试备考题库及答案详解
- 2026秋招:湖南钢铁集团面试题及答案
- 2026年马尔康县辅警招聘考试备考题库必考题
- 痴呆科普课件
- 活髓保存术课件
- 性病讲座课件
- 国有企业纪检监察面试题库
- DB34∕T 4442.4-2023 煤矿水害防治 第4部分:老空水害防治
- 公司转底炉工工艺技术规程
- 登革热和基孔肯雅热培训知识考试试题含答案
- 2025年特种设备检验人员资格考试(场(厂)内专用机动车辆检验师CCS)综合能力测试题及答案
- 员工安全用电知识培训课件
评论
0/150
提交评论