基于Unity2D制作橫板2D小游戲_第1頁
基于Unity2D制作橫板2D小游戲_第2頁
基于Unity2D制作橫板2D小游戲_第3頁
基于Unity2D制作橫板2D小游戲_第4頁
基于Unity2D制作橫板2D小游戲_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

摘要本篇論文主要流程是通過從游戲發(fā)展的背景引入Unity引擎制作游戲的,然后寫出自己為什么要以用Unity制作一個2D小游戲來進行畢業(yè)設計,對Unity的基礎介紹,還有對Anima2D這款組件的介紹來引入下文。正文主要寫自己是如何利用Unity進行該2D游戲的制作,以及自己制作游戲時候的思考和流程,以及在網(wǎng)上尋找的各種各樣的解決方案,還有用Anima2D制作角色的骨骼動畫的過程,并且在論文中提出自己在完成畢業(yè)設計的時候遇到的困難,提出自己的解決方案,并且提出自己當時還沒有解決的瓶頸,通過這樣,為大家初步介紹Unity和Anima2D的基本操作和一些在本次畢業(yè)設計上用到的組件的操作方式和自己遇到的問題。最后通過總結本次畢業(yè)設計的成果以及遇到的困難,來檢驗自己的學習成果,分析自己的不足。

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

游戲行業(yè)的國內(nèi)外研究現(xiàn)狀 11.3

本次課題的主要研究內(nèi)容 1第二章游戲開發(fā)工具及開發(fā)語言介紹 32.1Unity3D引擎簡介 32.2

C#開發(fā)語言 32.3

Visual

Studio編程軟件簡介 3第三章游戲需求分析及概要設計 4第四章游戲詳細設計及實現(xiàn) 54.1準備工作 54.2游戲的具體設計和實現(xiàn)及具體操作和思路 5第五章游戲測試 11第六章總結 17參考文獻 19致謝 20第一章緒論1.1

選題的目的與意義本次論文選題的目的是通過完成一個簡單的但是包括一般游戲的大部分要素的小游戲,通過這樣對自己的學習情況做一次總的反省和歸納,指出自己的各種不足和仍要改進的地方。同時也為把自己在使用Unity進行游戲制作的時候的一些經(jīng)驗進行記錄和公布,讓自己以后或者在其他人在閱讀該文章之后或多或少能得到收獲。最后借此來體現(xiàn)游戲引擎的出現(xiàn),對游戲制作行業(yè)發(fā)展的促進作用。1.2

游戲行業(yè)的國內(nèi)外研究現(xiàn)狀隨著人們的生活水平的不斷提高,人們的生活娛樂標準越發(fā)提高,從中誕生出了電腦游戲這一娛樂項目,在當今網(wǎng)絡科技、計算機的普及,電腦游戲也隨之普及開來,電腦游戲,也成了人們娛樂生活的潮流之一。從以前簡單的像素游戲,到如今的3A大作,歷經(jīng)了半世紀的打磨和發(fā)展。而在這個潮流當中,人們在不斷游玩各種游戲的時候,有不少人從中誕生了自己對游戲的一些獨特的看法,并且嘗試著自己去開發(fā),制作游戲,但是由于技術、代碼等要求導致門檻非常的高,讓不少人止步于此。不過或許是某些團隊發(fā)現(xiàn)了這種事,他們也贊同也愿意讓玩家自己去DIY自己的游戲,他們向大眾制作了不少可以簡化游戲制作難度的游戲引擎,從而讓游戲制作門檻大幅度的降低,甚至對一定收入以下的人群發(fā)布了免費的個人版滿足大家對DIY游戲的需求。從2D到3D,從RPG到動作類,各種各樣的游戲從只有大公司能制作到理論上每個人都能制作了,游戲的制作引擎也多種多樣,從專注2DRPG的RPG制作大師,到能制作2D和3D且容易上手的Unity,到3A大作的虛幻引擎等,人們開始用各種各樣的引擎去制作各種各樣的游戲了。而且在各種各樣的引擎當中,為了方便的使用游戲引擎進行游戲制作,玩家、官方、團隊等制作人都很樂意的在上面共享自己的代碼和插件,讓游戲引擎的使用變得更加的方便和精細、有趣了。在某幾個學期,我有幸的接觸到Unity的課程,從而產(chǎn)生了興趣,從UI制作到游戲內(nèi)的制作比起純粹的代碼變得可視化,從素材的導入、剛體到碰撞器的設定和使用,相機的設定、動畫的制作、動畫機的管理,從枯燥的代碼到高可視化界面都讓人對游戲制作的認識有了翻天覆地的變化。1.3

本次課題的主要研究內(nèi)容本次畢業(yè)設計和畢業(yè)論文的主要內(nèi)容是圍繞著Unity引擎和Anima2D組件去制作2D小游戲,通過這樣像大家初步介紹Unity引擎和Anima2D的基礎用法,同時對自己的知識進行一定的拓展,然后反饋自身遇到的問題,提出、并且對此進行解決,也提出一些自己在制作時因為種種原因無法解決的問題。最后對自己的學習進行檢驗,指出自己不足的地方。討論Unity引擎對自己制作游戲的時候的幫助和Anima2D骨骼動畫比起標準的動畫切換在2D動畫制作時候的不同、還有討論自己對游戲引擎的出現(xiàn)和發(fā)展對于游戲制作和游戲行業(yè)發(fā)展的總結。為了測驗自己的學習成效,并且檢驗自己在這幾個月的重溫和復習的成果,我把畢設的題目定位利用unity2D進行小游戲的制作,通過畢業(yè)設計對Unity這款游戲引擎進行復習、重溫和運用,加深對該時段學習的理解和運用,嘗試利用課堂上學習的知識和跟隨老師制作的作業(yè)的步驟,把從老師教的Unity3D的東西運用到Unity2D,自己獨自嘗試做一次游戲從而來檢測自己學習的效果。本次小項目制作中,除了運用了Unity的部分基礎功能,還嘗試加入了Unity的Anima2D插件,對原本沒有動作的素材進行了骨骼、蒙皮、修改骨骼權重等操作,從而制作了簡單的骨骼動畫,使其能通過對骨骼的各種操作讓素材通過變形、旋轉和移動直接生成動畫,在老師的基礎教學中嘗試加入了新插件的學習和運用,對自身的知識進行了小范圍的擴展,然后去進行項目的制作。期間涉及了一些Unity的基礎代碼和Unity內(nèi)的各種組件的運用和組合,以及動畫制作的操作,利用骨骼動畫為單張圖片制作多個動畫,并且分別通過各個按鍵監(jiān)聽進行動畫的切換,然后制作了一些游戲基礎要素(比如說血條、對游戲內(nèi)各種實體的相互判定、簡單的UI和滾動背景等),簡單的完成了一個游戲所需要的要素??偟膩碚f,完成了游戲的基本要素,可以通過拓展和更新來增加游戲的內(nèi)容了。同時也發(fā)現(xiàn)了自己在各種地方的不足,特別是代碼熟悉程度,導致不少時間都在讀網(wǎng)上找的相關代碼,然后引入自己的游戲進行修改和引用。按照畢業(yè)設計的成果來看,基本上完成了課題中制作動畫和2D橫版游戲的內(nèi)容。游戲開發(fā)工具及開發(fā)語言介紹2.1Unity3D引擎簡介本次論文研究的是Unity引擎和Anima2D組件,Unity3D是由UnityTechnologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如\t"/item/Unity3D/_blank"三維視頻游戲、建筑可視化、實時\t"/item/Unity3D/_blank"三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)\t"/item/Unity3D/_blank"游戲引擎。Unity類似于Director,Blendergameengine,Virtools或TorqueGameBuilder等利用交互的圖型化\t"/item/Unity3D/_blank"開發(fā)環(huán)境為首要方式的軟件。其編輯器可運行在Windows、Linux(目前僅支持Ubuntu和Centos發(fā)行版)、MacOSX下,可發(fā)布游戲至\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"插件發(fā)布網(wǎng)頁游戲,支持Mac和Windows的網(wǎng)頁瀏覽。它的\t"/item/Unity3D/_blank"網(wǎng)頁播放器也被Mac所支持?!鞍俣劝倏芠1]”而在使用Unity5.X時,Anima2D是最先進且完整的2D骨骼動畫解決方案。使用Anima2D,你將可以在Unity中為你的游戲創(chuàng)建2D骨骼的人物和背景。Anima2D擴展Unity通過,添加2D骨骼層級結構(2DBoneHierarchies),一個強大的可完全控制網(wǎng)格生成的SpriteMesh編輯器和2D反向力學(2DInverseKinematics)。Anima2D嚴格按工作流開發(fā),且無縫集成到Unity。“Anima2D官方文檔[2]”2.2

C#開發(fā)語言C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和\t"/item/c%23/_blank"C++衍生出來的\t"/item/c%23/_blank"面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性(例如沒有\(zhòng)t"/item/c%23/_blank"宏以及不允許多重繼承)。C#綜合了\t"/item/c%23/_blank"VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向\t"/item/c%23/_blank"組件編程的支持成為\t"/item/c%23/_blank".NET開發(fā)的首選語言。”百度百科[3]”總的來說C#是一種基于C和C++的一種面向?qū)ο蟮木幊陶Z言,集合了C和C++優(yōu)點,簡潔緊湊,靈活方便,有著豐富的運算符和數(shù)據(jù)類型,表達力和表達方式都有相當?shù)膬?yōu)勢,代碼的可讀性和可重用性好,也無需復雜的編程環(huán)境,最重要的是可以直接訪問物理地址并對硬件進行操作,程序效率高,可以移植到各種不同的系統(tǒng)上進行代碼的編寫和運行,大部分的系統(tǒng)框架也支持該編程語言。2.3

Visual

Studio編程軟件簡介VisualStudio集成開發(fā)環(huán)境是一種創(chuàng)新啟動板,可用于編輯、調(diào)試并生成代碼,然后發(fā)布應用。集成開發(fā)環(huán)境(IDE)是一個功能豐富的程序,可用于軟件開發(fā)的許多方面。除了大多數(shù)IDE提供的標準編輯器和調(diào)試器之外,VisualStudio還包括編譯器、代碼完成工具、圖形設計器和許多其他功能,以簡化軟件開發(fā)過程?!癧4]”VisualStudio(以下簡稱VS)是一款由微軟官方發(fā)布的編程軟件,它支持C類、BasicL類、Java類等多種編程語言,并且在編程窗口中擁有多種功能工具直觀的滿足使用者的一定程度上的編程需求,能夠在輸入相關代碼的時候提示或直接自動編寫相關代碼,并且擁有強大的語意檢查和錯誤檢查功能,能夠隨時進行運行測試,支持多種微軟系統(tǒng),并且能把代碼生成/打包、發(fā)布成exe文件進行直接使用,能夠極大程度上提高使用者的編程效率。游戲需求分析及概要設計本次畢業(yè)設計主要是制作一款2D橫版游戲,作為一個最基本的橫版2D游戲,需要一個主角供玩家進行操作,而主角需要在玩家按下按鍵時能夠進行對應的各種運動和動作(動畫)的演出,也需要一個2D背景供主角在上面進行游戲,也需要敵人,主角受到敵人攻擊后要做出受擊動作和變動相關數(shù)值,數(shù)值變化到一定之后會有對應的判定,主角也應該能夠做出攻擊動作,敵人在受到攻擊動作也要做出對應反應。除此之外還需要UI進行開始游戲和游戲開始后顯示出如生命值等角色屬性的UI、游戲結束后會自動彈出相關UI,點擊UI上的相應按鈕可以執(zhí)行相應的功能。在實際畢業(yè)設計作品中,我使用了Unity的assetstore上的資源,包括角色和背景,還有相關組件,動畫則是由自己制作,背景使用了兩張圖片作為背景,使用代碼進行背景的移動和復用,主角的動作通過Unity自帶的動畫機中的參數(shù)判定和代碼的按鍵監(jiān)聽結合自己制作的骨骼動畫進行制作,敵人采用了制作成預制體的cube,會在一個范圍內(nèi)進行隨機生成,飛向主角,碰撞地面后進行彈跳,碰撞主角后主角做出指定動作并且減少生命值,生命值歸零后主角會停下來,彈出重啟界面,按下重啟按鈕可以復活并進行游戲,主角按下攻擊鍵后能喚醒手上的觸發(fā)器,cube進入觸發(fā)器之后會產(chǎn)生相應的效果,在開始界面的開始UI中,按下開始能喚醒主角、敵人生成器、和角色屬性,開始UI和重啟UI中的退出按鈕,能正常關閉程序,角色屬性UI中有角色的生命值,能夠正常反饋角色的相關信息的變動。游戲詳細設計及實現(xiàn)4.1準備工作在使用Unity引擎制作游戲之前,你可以先去Unity官方網(wǎng)站直接下載Unity或者通過UnityHub進行引擎的下載,在UnityHub下載的時候能夠自行選擇自己需要的組件并且自動進行添加,在下載完成之后,需要進行注冊和登錄,然后進行激活碼的驗證才能夠使用,不過個人版和資金緊張的公司則可以免費使用個人版的Unity引擎進行游戲制作。在使用Unity引擎進行游戲的時候,往往會需要自己寫一些代碼進行支持,所以需要一些代碼編寫工具的,可以在組件選擇的時候勾選VisualStudio(我勾選了之后下載完成在Unity引擎內(nèi)選擇相關設置修改變成軟件的時候沒有VisualStudio選項,應該只是個支持VisualStudio的組件)或者自行下載其他編碼工具進行編碼。在下載完成之后,通過UnityHub(需要Unity賬號登錄和激活碼驗證才能繼續(xù),而且個人版的驗證會相當頻繁)或者直接打開Unity,就可以進入Unity界面了。之后在Edit菜單選擇Preference里面在Extemaltools修改ExtemalScriptEditor選項更換編程環(huán)境,這樣就完成Unity部分的準備工作了,而Anima2D組件和其他資源則是在windows的assetstore里面進行導入,導入完成后,所有準備工作就完成了。4.2游戲的具體設計和實現(xiàn)及具體操作和思路首先先從assetstore上下載幾個所需的素材,不過特別要注意的是,要用到Anima2D制作骨骼動畫的角色,推薦找各個關節(jié)都分開繪制的并且清晰的獨立的分布在png各個角落的素材資源,最好是一些作者已經(jīng)用spritepacker處理過的資源,因為被spritepacker處理過的圖片在之后很方便的進行切割,然后直接放到場景中進行操作。在找到符合條件的資源后進行導入,然后就可以開始我們的動畫制作了。首先先選中資源里面的剛剛提到的spritepacker處理過的帶有角色身上的各種部分的圖片(比起一般的png會多出SpriteMode等選項),然后點擊右邊界面的SpriteEditor,在新出來的窗口內(nèi)進行所需部件的確認、調(diào)整各個部件的選取區(qū)域,確保每一個有需要的部件都被完整框選,調(diào)整好部件內(nèi)的藍色圓點(在切割好之后會以該圓點作為各種調(diào)整的中心),然后選擇上方工具欄的Slice選擇好里面的各項參數(shù)之后,點擊Slice,再點擊Apply完成圖片的切割。隨后右鍵該圖片,然后選中create-Anima2D-SpriteMesh,一小會之后,就會發(fā)現(xiàn),它已經(jīng)把剛剛切好的圖片按照剛剛進行的切割分割成各個部件了,隨后把各個部件放到場景中進行組裝,組裝的時候能夠發(fā)現(xiàn)比起一般的實體,會自動增加了一個叫SpriteMeshInstance的組件,在那里,按照透視順序修改好OrderinLayer(數(shù)值高的會把數(shù)值低的覆蓋?。┑膮?shù),在場景里面進行角色的組裝。組裝完成后,現(xiàn)在的角色還是不能動的,就算拖動部件也只能做到最基本的平移旋轉操作,接下來就在場景中,選中create-2DObject之后會發(fā)現(xiàn)比起導入Anima2D之前多了幾個新的選項,這里選擇bone,然后把新建的bone移動到素材需要進行運動的地方調(diào)整好長度,鋪好骨骼(大量的骨骼甚至能做出非常柔軟的效果,如頭發(fā)飄動、衣服擺動等,不過相對的也更消耗性能),注意的是直接在舊的骨骼上創(chuàng)建新的骨骼,新的骨骼會在舊的骨骼末端出現(xiàn),并且成為父子物體的關系,拖動新的骨骼(子骨骼)會影響舊的關節(jié)的大小和旋轉,而通過這樣在同一骨骼上創(chuàng)建第二個或者直接的話則會在另一個地方創(chuàng)建骨骼,用這種方式創(chuàng)建子骨骼,并不會形成子骨骼影響父骨骼的關系(把其它骨骼拖到舊的骨骼借此成為父子關系也是一樣,但是會和普通父子關系物體一樣,會跟隨父骨骼進行旋轉、位移等,在這種關系的兩個骨骼,會有個半透明類似骨骼的聯(lián)系標識連接著),在鋪好骨骼之后,要注意骨骼暫時還是沒有綁定到實體上的,還是不會互相影響的,這個時候盡可能不要太大幅度的調(diào)整骨骼位置。在上述操作完成后,就可以準備進行蒙皮和骨骼綁定操作了,在上方選中window,會發(fā)現(xiàn)多了個Anima2D的選項,選中之后選擇SpriteMeshEditor,然后選中場景或project里面的身體部件,剛剛的png就會投到新出現(xiàn)的SpriteMeshEditor窗口上,然后在該窗口中只有剛剛選中的部件是高亮的,選中場景中鋪上骨骼的部件的時候,還會注意到SpriteMeshInstance有個添加骨骼的參數(shù),直接把Hierarchy里面的骨骼往該參數(shù)上拖動,就會發(fā)現(xiàn)參數(shù)下方出現(xiàn)了對應的骨骼和其子骨骼、而在SpriteMeshEditor窗口也能看見骨骼鋪到選中的對應物體上了。之后刪除SpriteMeshEditor中不需要的骨骼,然后回到SpriteMeshEditor中就會剩下留下的骨骼,之后和剛剛一樣,確保把部件周圍的選擇框完整框柱部件的同時不要框到其他部件,值得注意的是,上面的東西除了SpriteMesh窗口的選擇框和藍色圓點以外還多了一圈青色的點,選中Slice然后調(diào)整里面的三個參數(shù)(分別影響點的個數(shù),點和模型的貼合度、還有分布在內(nèi)部的點的比例),然后點擊Slice下的apply,就會發(fā)現(xiàn)藍點會根據(jù)那三個參數(shù)發(fā)生變化,隨后再次點擊Slice關閉Slice窗口,點擊Bind就會發(fā)現(xiàn)上面的骨骼發(fā)生了變色,這時候選中右下角的Overlay,整個部件都會變成其他顏色(多個骨骼的時候會出現(xiàn)很多顏色),這個顏色代表著當前部分的對應的顏色的骨骼的權重,而且細心點會發(fā)現(xiàn),那些顏色都是根據(jù)剛剛Slice加上去的點進行分布的(也就是蒙皮),勾選右下角的pies會把點放大,詳細顯示出每個點的權重分布情況,這里根據(jù)所需調(diào)節(jié)好各個點的骨骼權重(不需要每一個點去修改可以直接點擊右下角的Auto自動進行調(diào)整然后有需要的話再進行微調(diào),選中骨骼之后左下角的界面可以修改骨骼對應的顏色和名字,選中點則是可以更加細致的修改骨骼對選中點的權重),完成之后,點擊右上方的apply完成蒙皮和骨骼綁定。這時候,回到Unity的主界面,會發(fā)現(xiàn)不能通過移動部件來對其進行移動了,但是卻可以通過拖動骨骼影響到部件,這時證明骨骼綁定已經(jīng)成功了,不過具體是不是你想要那種效果,就得多次嘗試了,假若綁定錯誤或者效果不好,則需要回到SpriteMeshEditor點擊Unbind和Apply進行骨骼的解綁,之后再進行修改(修改越早越好,綁定多了之后發(fā)現(xiàn)某個骨骼沒綁好要修改往往是要全部都解綁然后再去逐個去微調(diào)的,非常的繁瑣)。到這里,我們Anima2D的基礎工作就完成了,雖然看起來非常的簡單,但是考慮到各種因素(如對蒙皮和骨骼權重的理解和調(diào)整,還有鋪設骨骼時候?qū)ξ矬w怎么動、要動哪里的想象和嘗試),會讓這些工作重復不少次,也很容易綁到最后發(fā)現(xiàn)有個地方動得不盡人意然后前功盡棄,所以實際處理起來還是挺花時間的。而且,骨骼動畫是通過圖片的局部變形來實現(xiàn)動畫效果的,所以在單張素材上想要做一些細節(jié)動畫的話,經(jīng)過實際的嘗試之后發(fā)現(xiàn)非常的困難,往往會讓不想發(fā)生變化的地方也產(chǎn)生了變形,權重修改也要變得非??简炄说哪托暮蛯趋绖赢嫷睦斫猓詫λ夭牡奶幚矸浅5闹匾研枰膭拥牟课粏为毞殖鰜?。而在鋪設骨骼的時候,建議修改好各個骨骼的名稱,并且用角色腰部或者腹部的骨骼來當整個角色骨骼的最高級的父骨骼,設置好每一個骨骼的父子關系非常重要。給圖片鋪設好骨骼之后,接下來就是讓圖片做出動畫,相比傳統(tǒng)的通過整個圖片進行差分的切換來說,骨骼動畫則是通過讓原圖變形而使圖片動起來,除去這個插件和Unity本身的制作難度和工程量來說,通過制作骨骼動畫遠遠要比游戲制作人去找一套帶有差分又合適,或者是另外開始找美工去進行角色和各種動作差分的繪制要方便得多。通過選中Unity上方的window,打開animation窗口,然后利用animation的錄制動畫功能給圖片制作動畫,通過上方的時間軸和移動骨骼給角色調(diào)整姿勢,通過不斷地調(diào)整和播放,使得動畫盡可能的看起來流暢、并且符合自己的想法,不過由于我的技術和自己本身也不是美工這一專業(yè)的,對人體和動作的理解不夠透徹,所以自己做的動畫并不好看。在制作動畫的部分,Anima2D還有其他的組件,比如說IK反動力學組件,可以直接在想要使用該功能的骨骼上create,IKCCD是泛用型比較廣的反動力學組件,而IKLimb則是更適合人體使用,他們都會通過移動IK組件然后在不使骨骼變形的前提下,進行反過來計算骨骼移動、旋轉,更加直觀、簡單的調(diào)整和制作角色的制作,而另一個Control組件則是最好是綁定在整個骨骼的父骨骼(也就是整套骨骼的重心上),通過配合IK組件移動Control可以十分方便的做出很多改變身體姿勢的動作和動畫,還可以在骨骼的Inspector窗口添加PoseManager,隨時記錄和讀取骨骼的動作,要是熟練使用的話,這幾個功能會讓游戲角色動畫制作變得非常方便。除此之外,Anima2D還有OnionSkin和BakeAnimation功能,一個是在骨骼動畫制作時可以直觀的通過不同顏色來表示上一幀的動作,而另一個則是通過烘培動畫把起始到結束的所有動畫都添加關鍵幀以減少性能的損耗。在通過不斷的重復和調(diào)試之后,完成了一個2D橫版游戲基本上都有的待機-走路-跑步-攻擊-跳躍-受擊-死亡動作之后,Anima2D和Animator的部分基本上完成了。隨后就直接把其它游戲物體拖到界面上,一個橫版2D游戲的雛形就出現(xiàn)了,雖然從整個場景來看,背景只有寥寥幾張圖片。然后給背景添加相關代碼,在一定范圍內(nèi),讓兩張背景根據(jù)游戲時間乘以一個背景的移動速度的推移每次移動距離,達到最大之后重新從零開始,這樣每當圖片運行這行代碼的時候,就仿佛在前進了,而且只要最大值等同于圖片的大小,這張背景就相當于無限長了(實際上就是兩張圖片在移動到一定位置的時候返回初始位置重新進行移動,數(shù)值設置得準確的話確實是看不出來兩張圖只是在一直在重復移動而已)。在制作好這個簡單的背景之后,就開始讓不同按鈕進行讓角色做出不同的動作了,這里是通過標準的鍵盤按鍵監(jiān)聽來實現(xiàn),事先在Animator動畫機里面設置好參數(shù),然后給各個動畫的切換根據(jù)參數(shù)定好條件,接下來就是用代碼實現(xiàn)按鍵按下和放開的監(jiān)聽修改對應參數(shù),符合動畫切換的條件,然后對動畫進行切換,修改每個的話的退出時間和是否需要過渡以及過渡時間(過渡時間沒調(diào)好會導致做出不協(xié)調(diào)的動作,也可能導致動畫的延遲或者不播放),這樣之后,一個會被玩家鍵盤所控制的主角就完成了。接下來就是要制造一個簡單的地板,這里就直接使用了plane在主角的腳下進行一定角度的旋轉然后把大小拉的盡可能包括整個背景,這樣一個地面就完成了,這里實際上可以在背景上多加點背景裝飾,分別在靠近鏡頭一側、在角色和背景之間的一側添加一些景物,然后隨著背景推進一起移動,也可以加個移動光源模擬一個晝夜變換的效果。然后就要給地板加上2D碰撞器了,同時也要給角色加上2D剛體的和一個2D碰撞器(因為2D碰撞器不會隨著添加2D剛體自動添加),然后角色和地面就會模擬一個重力和碰撞的效果,鎖定好角色剛體的旋轉,防止在跳躍的時候發(fā)生旋轉,然后給跳躍動作監(jiān)聽的代碼增加一條按下的時候給角色一個向上的力,設置好力的大小,使得等同于跳躍動作的時間(或者也可以縮短跳躍-其他動作的切換時間),再加上按下的時候使isjump變?yōu)閠rue,檢測2D剛體和帶有Ground的標簽(tag)的2D碰撞體的同時使isjump變?yōu)閒alse,這樣進行設計的話,可以避免玩家在不處于地面上卻還能進行跳躍的情況,并且能為后續(xù)增加浮空動作提供不少便利。這樣,角色就能根據(jù)按鍵做出走和跳的動作了,雖然只是背景在動,并不是真正意義上的走,然后這里就出現(xiàn)一個問題,如何把慢走的動作和站立的動作加進去同時又讓背景產(chǎn)生相應的變化,這又是一個難題,因為我的滾動背景用的并不是慢慢的推移過去的,而是每次都是從開始的位置加一個隨著時間變大的數(shù)而制作的,這樣的話,直接調(diào)整參數(shù)大小的話,雖然是會讓背景板慢下來,但是調(diào)整前和調(diào)整后位置會完全不同,所以這里就用了讓Time.timeScale變成原來的一般,但是讓Animation的播放速度加快一倍的方式進行彌補了,可是站立還是沒辦法找到辦法解決,記錄當前背景位置后,強行把背景位置等同于當前位置,并且不運行背景的位置變動計算,通過這樣做,播放對應的站立動畫,并且把圖片固定在原地(一松開按鍵后圖片很可能會移動到不同的地方)。之后就要進行敵人的制作,這里使用的敵人是一個會彈跳的cube,利用Random.Range設定一個隨機變動的高度,然后讓maker搭載這個腳本,配合時間閘,每隔一定時間在某個位置的隨機高度生成預制體flybox,然后再給flybox設置好一個飛向主角的初始的力、配置好2D剛體和2D碰撞器之后、通過tag的辨別,碰撞與地面碰撞模擬彈跳效果,還有碰撞主角讓自身運行destory(this)命令。然后給主角加上碰撞flybox的標簽后behit參數(shù)變?yōu)?,播放受擊動畫的代碼和播放結束后讓behit變回0的代碼,這樣敵人生成和主角受擊判定就完成了。然后就進行UI的制作。這里需要的UI是開始和退出的按鈕,在createUI里面的Button之后會自動生成一張畫布,因為我制作的游戲比較簡單,主UI和游戲的背景用的是同一張,所以這里就不用制作新的Scene,和利用SceneManagement包來進行Scence進行場景切換了,畫布類型選擇跟隨相機和固定大小,然后和游戲場景的主攝像機在畫布中的參數(shù)綁定起來,這樣,設置在畫布內(nèi)的UI按鈕也可以直接放置在攝像機的范圍內(nèi),拖動相機的時候也可以拖著畫布和UI一起移動了(當然也可以用Overlay進行制作,那樣的話無論相機在哪都會優(yōu)先顯示UI).制作好開始和退出按鈕之后,在下方設置好點擊事件,在開始按鈕的點擊事件參數(shù)中設置好游戲中個個物體的激活還有菜單的隱藏事件,而退出則是寫好一個退出程序的代碼Application.Quit()放到空對象上,然后點擊按鈕后運行該段代碼。制作好簡單的主UI之后,就該制作游戲內(nèi)的角色屬性面板了,這里只進行了血條的制作,使用了三個空圖片,然后通過image的上色完成了白色、紅色、暗紅色三種不同貼圖,讓白色放到最左邊,暗紅色的當做血槽,紅色的當做現(xiàn)有血量,這樣一條簡單的血條就完成了,然后調(diào)整一下填充方向,使得調(diào)整(減少)FillAmount的時候會向左進行縮進就完成了,然后利用代碼,讓flybox碰到角色的2D碰撞體的時候填充進行減法運算,填充為0的時候則對動畫機上的參數(shù)滿足死亡動畫的條件,這樣一條簡單的可以根據(jù)相關參數(shù)的血條完成了。接著就再次用UI創(chuàng)建一個again和退出的button,按下again的時候就運行相關空物體的代碼讓填充變回1,參數(shù)重新滿足從死亡變回默認狀態(tài)。(不過這樣依然還是不太好,按下again之后會從地上爬起來,并不是我想要的效果,直接把該場景時間重置會有更好的效果)。接下來就要給主角添加一些其他的系統(tǒng),在主角的武器的骨骼上生成一個空物體,附上2D碰撞器,勾選觸發(fā)器選項后,調(diào)整到合適大小,就完成了(綁到圖片上則會因為不會跟著骨骼進行運動的同時因為觸發(fā)器碰到物體的剛體或碰撞器是不會觸發(fā)物理效果而會直接掉到屏幕下方),利用按鍵監(jiān)聽讓這個攻擊判定框只在按下J的時候出現(xiàn),利用動畫播放監(jiān)聽來讓播放結束后讓動畫機參數(shù)歸零(這里若是調(diào)成大于1,即讓動畫播放完再讓參數(shù)歸零則會因為Unity的Animation的動畫過渡功能無法觸發(fā),需要微調(diào)數(shù)值去試到適合為止),然后給flybox加上碰到該標簽的觸發(fā)器自動給一個比較大的力讓其飛走,并且觸發(fā)一次粒子效果,這樣攻擊就完成了。(目前沒有找到能檢測觸發(fā)器去碰撞其他碰撞器的代碼,其實做的時候試圖做了記分系統(tǒng),但是因為flybox是預制體,而預制體身上的代碼似乎也只能是預制體,通過這種方式修改記分板的代碼只會改到文件中的代碼而已,并不能對場景中的計分板進行修改,所以沒有實現(xiàn)計分板功能)。不過在之后幾天,經(jīng)過老師的引導和指點,增加了新的敵人,采用了分別使用了受擊框和攻擊框,使該敵人只能在跳躍的時候命中,不過在根據(jù)老師的建議修正了下比例之后,在石頭人姿勢稍低的時候在正確的時機進行攻擊也能命中。并且給武器的攻擊框增加了相關代碼,從原來敵人受擊加分這個思路改變成了擊中目標加分,而武器的攻擊框則是常駐在游戲場景上,故沒有之前沒法加分的問題了,而且之前的預制體獲得場景物體也有辦法解決了,使用了Unity中的Find命令進行游戲物體的搜索和獲取,不過相對來說會更消耗性能,故還是使用了攻擊敵人加分這個設定,并且使用粒子效果制作了簡單的攻擊特效,不過具體是放在武器上還是敵人上比較好還有待研究,增加了一個可以暫時走上去的地形,可以暫時躲避下方的敵人和盒子,也修改了下跳躍的邏輯代碼,現(xiàn)在站到地面上的時候會切換回默認姿勢而不是完成跳躍動作才返回,原本由于攻擊動畫速度較慢,也進行了小許優(yōu)化,增加了小許的動畫速度,同時也制作了一個跟隨主角移動的小球,上面注釋了幾個不同的根據(jù)主角和小球距離的條件,稍作修改,加上一些素材導入和動畫制作,就可以為后續(xù)增加的怪物或者需要類似判定的游戲物體套用上這個小球里的腳本了(但是由于不太符合目前),之后也增加一個觸碰到角色可以給角色系統(tǒng)中的血條進行回復的游戲物體,為了避免之前遇到的問題,也是把相關代碼寫到了主角的碰撞體上進行相關數(shù)值的增加,而且由于碰撞原因,在足夠近的情況下攻擊到對應敵人的受擊框會產(chǎn)生碰撞器的重復判定,所以增加了攻擊命中目標后,關閉目標的碰撞器,借此來優(yōu)化了該問題,這個優(yōu)化同時也對游戲的難度進行了些調(diào)整,故也縮小了主角的攻擊框。這款游戲的大體就完成了,除了以上主要系統(tǒng)還加上了一些其他功能的添加,比如說flybox擊中主角后因為兩個都有剛體,質(zhì)量都差不多,flybox的力相對來說非常大,所以會讓主角產(chǎn)生位移,寫了個事先記錄好的開始位置,在HP沒有歸零的時候會根據(jù)距離回到開始位置的代碼、還做了一個另不同速度不同位置(層級)用來遮擋視線的背景,一個純粹用Anima2D的功能進行制作的帶動畫但是沒有實裝到攝像頭中的石頭人(沒有在骨骼動畫制作的時候?qū)趋肋M行單獨的修改,而是只使用了IK組件和Control組件進行動畫的制作),還有一個單純用于增加背景亮度的定向光(實際可用來做晝夜變換,但是由于我對于2D實體的光線調(diào)整研究得不太充足,創(chuàng)建的定向光并沒有對主角產(chǎn)生影響)。游戲測試游戲畫面游戲開始界面,點擊start按鈕可以進入游戲,Exit則會關閉程序如圖5-1所示圖5-1開始界面圖5-2游戲內(nèi)界面每隔一段時間會生成能夠站上去的平臺,可以回避大部分攻擊,如5-3所示圖5-3能夠暫時回避敵人的平臺打中方塊分數(shù)+1,并且擊飛方塊,取消方塊的剛體和碰撞,打中石頭人上半身則取消石頭人的攻擊框和碰撞如圖5-4、5-5、5-6所示圖5-4攻擊擊中方塊圖5-5攻擊石頭人的下方不能擊倒石頭人圖5-6攻擊框和收擊框不同的敵人血量歸零后出現(xiàn)失敗界面,如5-7所示5-7失敗界面,點擊Again可以回滿血復活,并且重新激活刷怪物體除此之外還有能夠供主角回復血量的物體,如圖5-8、5-9所示圖5-8回血膠囊體,主角碰到了可以回血,圖5-9回血效果,總結在本次的畢業(yè)設計中,我通過使用Unity引擎和Anima2D組件進行了游戲的制作,證實了該游戲引擎可以讓我非常方便而簡易的進行游戲的制作,同時運用到了在該學期學習到的相關知識,雖然不足的地方很多,但是收獲的東西也不少,同時也在一定程度上體現(xiàn)出一款游戲制作引擎能給予一個業(yè)余愛好者制作游戲有多大的幫助,而類似Anima2D這樣的組件則是讓制作的方式變得更加多樣化和簡便化,也增添了不少趣味性,Unity自帶的各種各樣的工具則是節(jié)省了使用者制作時候的各種繁瑣的代碼流程,比如說動畫機,原本則是需要大量的代碼進行參數(shù)的設置和動畫的設定和播放的,還有制作時候的直觀性和可視化操作,從創(chuàng)建物體,到自己編寫一些簡單的代碼讓物體動起來,幾乎可以說達到一邊進行游戲制作一邊檢查制作的程度了,創(chuàng)建出來的每個物體也會自帶一部分所需的組件或者腳本,不再需要進去對應參數(shù)的代碼進行代碼的查找和修改,而是可以通過界面相當直觀的對對應參數(shù)做出相應的調(diào)整,對于自己編寫的代碼,只需要用上相關的包里面的代碼,在賦予給場景中的物體或資源中的預制體之后,就會直接出現(xiàn)在對應的腳本組件中出現(xiàn)對于的參數(shù)修改選項,就顯得非常的方便和直觀,對于初學者或者不太擅長代碼的使用者來說,比起只能通過代碼進行修改,這種方式就顯得非常的方便、清楚了。而本次使用的官方組件Anima2D則是在角色動畫制作上幫了不少忙,可以在制作角色動畫的時候不用或者少用差分進行角色制作,只需要分好每個部件,鋪設好骨骼,綁定好之后,利用相對應的組件,就能進行動畫制作了,雖然還是需要使用者對于相關動作的一定研究和不斷的調(diào)整才能有心儀的動畫效果,不過比起繪制好幾個差分來說,對于非繪畫的或者繪畫不熟練的使用者來說確實是一種很好的替代方式。不過通過本次畢業(yè)設計,我認識到了自己的學習還是不夠踏實,在代碼方面比較生疏,感覺自己在制作的時候有一大部分的時間是在尋找相關代碼和解讀代碼的意思,然后才進行調(diào)整和修改到自己的制作當中的,而且其中可能包括了不少的代碼重復和多余,代碼的條理也是相當?shù)幕靵y,思考時候的思路也不太清晰,比較混亂,而且在美工上的處理和制作也并不理想,雖說自己并不是那個專業(yè)的,但是感覺還是太簡陋了,對于人體的動作也不是很熟悉,骨骼綁定也處理得不好,動畫也有違和感,循環(huán)的時候并不是完全的對稱,導致播放的時候出現(xiàn)不協(xié)調(diào)的效果,動畫機上的處理也不太熟練,對于動畫過渡和退出的理解不夠深刻,而在功能的實現(xiàn)上也遇到了不少挫折,在自己后續(xù)的測試中也發(fā)現(xiàn)了自己某些功能的實現(xiàn)方式也是不太理想,比如說重新開始功能,應該用新場景制作然后把time重置成開始,效果會比現(xiàn)在好得多,而某些動畫退出的時候過渡時間也把握得不太好,有待改善,動作之間的退出判定也不太如意,游戲內(nèi)容的容量也有待提高,甚至還有未完成、無法完成的部分。不過在某種程度上,這也證明了現(xiàn)在即使是和我一樣的初學者,也能通過一些游戲引擎和組件組合起來進行一些較為簡單的游戲制作了,他們不用去專門學習大量的代碼知識、進行大量的編程訓練,就可以通過各種各樣的游戲引擎和組件把自己內(nèi)心中的想法,內(nèi)心中的游戲制作出來,對比起當年人們對于游戲、軟件的制作往往是遙不可及的程度,現(xiàn)在也變成了只要肯花時間去琢磨一下,就可以進行簡單的制作了,這不僅僅讓游戲制作者制作游戲變得簡便,而且在降低門檻增加趣味性吸引了不少人進行游戲制作的同時,讓不少人感興趣去學習相對應的課程,讓游戲的發(fā)展變得比以前快了不少,各種各樣的獨立作品在不同的平臺發(fā)售,讓人眼前一亮的有趣、創(chuàng)新的玩法,讓人感觸良多的深刻、沉思的游戲劇情,還有多種多樣、充滿驚喜的世界觀,不僅僅在某些大作中出現(xiàn)了,獨立游戲中也會不時傳出各種各樣的神作,感人肺腑的劇情,還有吸引人心的玩法和世界,憑借著相比之下更加低的價格更容易讓人去購買并且游玩。所以,隨著游戲引擎的出現(xiàn)和發(fā)展,還有相關組件的豐富和增加,使得游戲制作的門檻降低,也在另一方面推動著游戲制作行業(yè)的發(fā)展,讓人們能把自己心中所想的游戲表現(xiàn)出來,雖然我對Unity引擎可能只是了解了點皮毛而已,但是從這已經(jīng)可以看出來,游戲制作引擎的確是可以讓游戲的制作變得簡易,讓游戲變得豐富,讓游戲行業(yè)的發(fā)展變得更加快速了。參考文獻[1]\o"查看此用戶資料"\t"/item/Unity3D/_blank"愛笑的在的等編輯者.百度百科Unity3D[Z],/item/Unity3D/3064002?fromtitle=Unity&fromid=10793&fr=aladdin,最近更新時間2020-04[2]游戲仁,Anima2D官方中文文檔(B站首發(fā))[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的兒童安全教育游戲的研究與實現(xiàn)[D]四川師范大學,2015[7]段薛孔,李潼,朱旭東,吳蘭Unity3D游戲場景中人物角色動畫的設計.安徽:電腦知識與技術期刊,2019.15-9[8]程彬彬,王明鑫,商楠淺談游戲開發(fā)平臺Unity3D的應用與發(fā)展前景.遼寧沈陽:沈陽理工大學,110159[9]李兵川基于Unity3D游戲開發(fā)流程分析重慶重慶科創(chuàng)職業(yè)學院.402160[10]UnityTechnology.Unity4x從入門]到精通[M]中鐵出版社。2013[11]王同娟基于Unity3D的教育游戲開發(fā)研究[J]電腦編程技巧與維護,2018(1):7.[12]杜文罄科普游戲興奮點研究及其對科學教育的啟示[D]西南大學2018[13]吳亞峰,于復興.UnisD游戲開發(fā)技術詳解與典型案例北京人民郵電出版社,2000:56-59[14]程明智.Unity游戲開發(fā)技術.北京:國防工業(yè)出版社,2012:279-318致謝首先我要感謝在那個學期給我上了Unity選修課程的老師,讓我有機會接觸和了解到Unity游戲引擎,并且教會了我們最基本最簡單的游戲制作方式,從而讓我有機會進行本次的畢業(yè)設計和畢業(yè)論文制作,雖然本次使用的組件和代碼大部分都是通過其他方式了解到的,但是沒有老師教到的基礎我是完全看不懂和沒辦法進行理解和操作的,甚至可能根本不可能知道能夠用Unity進行游戲制作。其次我要感謝我的論文指導老師,能在百忙之中對我的畢業(yè)論文進行檢查,并且指出需要修改的地方讓我及時進行修改。我的畢業(yè)論文和畢業(yè)設計仍有不少不足的地方,通過老師的不斷地進行指導,我嘗試著進行著修改,從中我重溫、并且學習到了不少知識,也對最初進行制作時候的思路進行了優(yōu)化和修改,使得比起第一次完成的時候?qū)崿F(xiàn)了不少系統(tǒng),這使我終生受益,希望這次的不足和遺憾能成為我日后進步的動力。

電腦故障檢測卡代碼表

1、特殊代碼"00"和"ff"及其它起始碼有三種情況出現(xiàn):

①已由一系列其它代碼之后再出現(xiàn):"00"或"ff",則主板ok。

②如果將cmos中設置無錯誤,則不嚴重的故障不會影響bios自檢的繼續(xù),而最終出現(xiàn)"00"或"ff"。

③一開機就出現(xiàn)"00"或"ff"或其它起始代碼并且不變化則為主板沒有運行起來。

2、本表是按代碼值從小到大排序,卡中出碼順序不定。

3、未定義的代碼表中未列出。

4、對于不同bios(常用ami、award、phoenix)用同一代碼代表的意義不同,因此應弄清您所檢測的電腦是屬于哪一種類型的bios,您可查閱您的電腦使用手冊,或從主板上的bios芯片上直接查看,也可以在啟動屏幕時直接看到。

5、有少數(shù)主板的pci槽只有一部分代碼出現(xiàn),但isa槽有完整自檢代碼輸出。且目前已發(fā)現(xiàn)有極個別原裝機主板的isa槽無代碼輸出,而pci槽則有完整代碼輸出,故建議您在查看代碼不成功時,將本雙槽卡換到另一種插槽試一下。另外,同一塊主板的不同pci槽,有的槽有完整代碼送出,如dell810主板只有靠近cpu的一個pci槽有完整代碼顯示,一直變化到"00"或"ff",而其它pci槽走到"38"后則不繼續(xù)變化。

6、復位信號所需時間isa與pci不一定同步,故有可能isa開始出代碼,但pci的復位燈還不熄,故pci代碼停要起始代碼上。

代碼對照表

00.已顯示系統(tǒng)的配置;即將控制INI19引導裝入。

01處理器測試1,處理器狀態(tài)核實,如果測試失敗,循環(huán)是無限的。處理器寄存器的測試即將開始,不可屏蔽中斷即將停用。CPU寄存器測試正在進行或者失敗。

02確定診斷的類型(正?;蛘咧圃欤?。如果鍵盤緩沖器含有數(shù)據(jù)就會失效。停用不可屏蔽中斷;通過延遲開始。CMOS寫入/讀出正在進行或者失靈。

03清除8042鍵盤控制器,發(fā)出TESTKBRD命令(AAH)通電延遲已完成。ROMBIOS檢查部件正在進行或失靈。

04使8042鍵盤控制器復位,核實TESTKBRD。鍵盤控制器軟復位/通電測試??删幊涕g隔計時器的測試正在進行或失靈。

05如果不斷重復制造測試1至5,可獲得8042控制狀態(tài)。已確定軟復位/通電;即將啟動ROM。DMA初如準備正在進行或者失靈。

06使電路片作初始準備,停用視頻、奇偶性、DMA電路片,以及清除DMA電路片,所有頁面寄存器和CMOS停機字節(jié)。已啟動ROM計算ROMBIOS檢查總和,以及檢查鍵盤緩沖器是否清除。DMA初始頁面寄存器讀/寫測試正在進行或失靈。

07處理器測試2,核實CPU寄存器的工作。ROMBIOS檢查總和正常,鍵盤緩沖器已清除,向鍵盤發(fā)出BAT(基本保證測試)命令。.

08使CMOS計時器作初始準備,正常的更新計時器的循環(huán)。已向鍵盤發(fā)出BAT命令,即將寫入BAT命令。RAM更新檢驗正在進行或失靈。

09EPROM檢查總和且必須等于零才通過。核實鍵盤的基本保證測試,接著核實鍵盤命令字節(jié)。第一個64KRAM測試正在進行。

0A使視頻接口作初始準備。發(fā)出鍵盤命令字節(jié)代碼,即將寫入命令字節(jié)數(shù)據(jù)。第一個64KRAM芯片或數(shù)據(jù)線失靈,移位。

0B測試8254通道0。寫入鍵盤控制器命令字節(jié),即將發(fā)出引腳23和24的封鎖/解鎖命令。第一個64KRAM奇/偶邏輯失靈。

0C測試8254通道1。鍵盤控制器引腳23、24已封鎖/解鎖;已發(fā)出NOP命令。第一個64KRAN的地址線故障。

0D1、檢查CPU速度是否與系統(tǒng)時鐘相匹配。2、檢查控制芯片已編程值是否符合初設置。3、視頻通道測試,如果失敗,則鳴喇叭。已處理NOP命令;接著測試CMOS停開寄存器。第一個64KRAM的奇偶性失靈

0E測試CMOS停機字節(jié)。CMOS停開寄存器讀/寫測試;將計算CMOS檢查總和。初始化輸入/輸出端口地址。

0F測試擴展的CMOS。已計算CMOS檢查總和寫入診斷字節(jié);CMOS開始初始準備。.

10測試DMA通道0。CMOS已作初始準備,CMOS狀態(tài)寄存器即將為日期和時間作初始準備。第一個64KRAM第0位故障。

11測試DMA通道1。CMOS狀態(tài)寄存器已作初始準備,即將停用DMA和中斷控制器。第一個64DKRAM第1位故障。

12測試DMA頁面寄存器。停用DMA控制器1以及中斷控制器1和2;即將視頻顯示器并使端口B作初始準備。第一個64DKRAM第2位故障。

13測試8741鍵盤控制器接口。視頻顯示器已停用,端口B已作初始準備;即將開始電路片初始化/存儲器自動檢測。第一個64DKRAM第3位故障。

14測試存儲器更新觸發(fā)電路。電路片初始化/存儲器處自動檢測結束;8254計時器測試即將開始。第一個64DKRAM第4位故障。

15測試開頭64K的系統(tǒng)存儲器。第2通道計時器測試了一半;8254第2通道計時器即將完成測試。第一個64DKRAM第5位故障。

16建立8259所用的中斷矢量表。第2通道計時器測試結束;8254第1通道計時器即將完成測試。第一個64DKRAM第6位故障。

17調(diào)準視頻輸入/輸出工作,若裝有視頻BIOS則啟用。第1通道計時器測試結束;8254第0通道計時器即將完成測試。第一個64DKRAM第7位故障。

18測試視頻存儲器,如果安裝選用的視頻BIOS通過,由可繞過。第0通道計時器測試結束;即將開始更新存儲器。第一個64DKRAM第8位故障。

19測試第1通道的中斷控制器(8259)屏蔽位。已開始更新存儲器,接著將完成存儲器的更新。第一個64DKRAM第9位故障。

1A測試第2通道的中斷控制器(8259)屏蔽位。正在觸發(fā)存儲器更新線路,即將檢查15微秒通/斷時間。第一個64DKRAM第10位故障。

1B測試CMOS電池電平。完成存儲器更新時間30微秒測試;即將開始基本的64K存儲器測試。第一個64DKRAM第11位故障。

1C測試CMOS檢查總和。.第一個64DKRAM第12位故障。

1D調(diào)定CMOS配置。.第一個64DKRAM第13位故障。

1E測定系統(tǒng)存儲器的大小,并且把它和CMOS值比較。.第一個64DKRAM第14位故障。

1F測試64K存儲器至最高640K。.第一個64DKRAM第15位故障。

20測量固定的8259中斷位。開始基本的64K存儲器測試;即將測試地址線。從屬DMA寄存器測試正在進行或失靈。

21維持不可屏蔽中斷(NMI)位(奇偶性或輸入/輸出通道的檢查)。通過地址線測試;即將觸發(fā)奇偶性。主DMA寄存器測試正在進行或失靈。

22測試8259的中斷功能。結束觸發(fā)奇偶性;將開始串行數(shù)據(jù)讀/寫測試。主中斷屏蔽寄存器測試正在進行或失靈。

23測試保護方式8086虛擬方式和8086頁面方式。基本的64K串行數(shù)據(jù)讀/寫測試正常;即將開始中斷矢量初始化之前的任何調(diào)節(jié)。從屬中斷屏蔽存器測試正在進行或失靈。

24測定1MB以上的擴展存儲器。矢量初始化之前的任何調(diào)節(jié)完成,即將開始中斷矢量的初始準備。設置ES段地址寄存器注冊表到內(nèi)存高端。

25測試除頭一個64K之后的所有存儲器。完成中斷矢量初始準備;將為旋轉式斷續(xù)開始讀出8042的輸入/輸出端口。裝入中斷矢量正在進行或失靈。

26測試保護方式的例外情況。讀出8042的輸入/輸出端口;即將為旋轉式斷續(xù)開始使全局數(shù)據(jù)作初始準備。開啟A20地址線;使之參入尋址。

27確定超高速緩沖存儲器的控制或屏蔽RAM。全1數(shù)據(jù)初始準備結束;接著將進行中斷矢量之后的任何初始準備。鍵盤控制器測試正在進行或失靈。

28確定超高速緩沖存儲器的控制或者特別的8042鍵盤控制器。完成中斷矢量之后的初始準備;即將調(diào)定單色方式。CMOS電源故障/檢查總和計算正在進行。

29.已調(diào)定單色方式,即將調(diào)定彩色方式。CMOS配置有效性的檢查正在進行。

2A使鍵盤控制器作初始準備。已調(diào)定彩色方式,即將進行ROM測試前的觸發(fā)奇偶性。置空64K基本內(nèi)存。

2B使磁碟驅(qū)動器和控制器作初始準備。觸發(fā)奇偶性結束;即將控制任選的視頻ROM檢查前所需的任何調(diào)節(jié)。屏幕存儲器測試正在進行或失靈。

2C檢查串行端口,并使之作初始準備。完成視頻ROM控制之前的處理;即將查看任選的視頻ROM并加以控制。屏幕初始準備正在進行或失靈。

2D檢測并行端口,并使之作初始準備。已完成任選的視頻ROM控制,即將進行視頻ROM回復控制之后任何其他處理的控制。屏幕回掃測試正在進行或失靈。

2E使硬磁盤驅(qū)動器和控制器作初始準備。從視頻ROM控制之后的處理復原;如果沒有發(fā)現(xiàn)EGA/VGA就要進行顯示器存儲器讀/寫測試。檢測視頻ROM正在進行。

2F檢測數(shù)學協(xié)處理器,并使之作初始準備。沒發(fā)現(xiàn)EGA/VGA;即將開始顯示器存儲器讀/寫測試。.

30建立基本內(nèi)存和擴展內(nèi)存。通過顯示器存儲器讀/寫測試;即將進行掃描檢查。認為屏幕是可以工作的。

31檢測從C800:0至EFFF:0的選用ROM,并使之作初始準備。顯示器存儲器讀/寫測試或掃描檢查失敗,即將進行另一種顯示器存儲器讀/寫測試。單色監(jiān)視器是可以工作的。

32對主板上COM/LTP/FDD/聲音設備等I/O芯片編程使之適合設置值。通過另一種顯示器存儲器讀/寫測試;卻將進行另一種顯示器掃描檢查。彩色監(jiān)視器(40列)是可以工作的。

33.視頻顯示器檢查結束;將開始利用調(diào)節(jié)開關和實際插卡檢驗顯示器的關型。彩色監(jiān)視器(80列)是可以工作的。

34.已檢驗顯示器適配器;接著將調(diào)定顯示方式。計時器滴答聲中斷測試正在進行或失靈。35.完成調(diào)定顯示方式;即將檢查BIOSROM的數(shù)據(jù)區(qū)。停機測試正在進行或失靈。

36.已檢查BIOSROM數(shù)據(jù)區(qū);即將調(diào)定通電信息的游標。門電路中A-20失靈。

37.識別通電信息的游標調(diào)定已完成;即將顯示通電信息。保護方式中的意外中斷。

38.完成顯示通電信息;即將讀出新的游標位置。RAM測試正在進行或者地址故障>FFFFH。

39.已讀出保存游標位置,即將顯示引用信息串。.

3A.引用信息串顯示結束;即將顯示發(fā)現(xiàn)信息。間隔計時器通道2測試或失靈。

3B用OPTI電路片(只是486)使輔助超高速緩沖存儲器作初始準備。已顯示發(fā)現(xiàn)<ESC>信息;虛擬方式,存儲器測試即將開始。按日計算的日歷時鐘測試正在進行或失靈。

3C建立允許進入CMOS設置的標志。.串行端口測試正在進行或失靈。

3D初始化鍵盤/PS2鼠標/PNP設備及總內(nèi)存節(jié)點。.并行端口測試正在進行或失靈。

3E嘗試打開L2高速緩存。.數(shù)學協(xié)處理器測試正在進行或失靈。

40.已開始準備虛擬方式的測試;即將從視頻存儲器來檢驗。調(diào)整CPU速度,使之與外圍時鐘精確匹配。

41中斷已打開,將初始化數(shù)據(jù)以便于0:0檢測內(nèi)存變換(中斷控制器或內(nèi)存不良)從視頻存儲器檢驗之后復原;即將準備描述符表。系統(tǒng)插件板選擇失靈。

42顯示窗口進入SETUP。描述符表已準備好;即將進行虛擬方式作存儲器測試。擴展CMOSRAM故障。

43若是即插即用BIOS,則串口、并口初始化。進入虛擬方式;即將為診斷方式實現(xiàn)中斷。.44.已實現(xiàn)中斷(如已接通診斷開關;即將使數(shù)據(jù)作初始準備以檢查存儲器在0:0返轉。)BIOS中斷進行初始化。

45初始化數(shù)學協(xié)處理器。數(shù)據(jù)已作初始準備;即將檢查存儲器在0:0返轉以及找出系統(tǒng)存儲器的規(guī)模。.

46.測試存儲器已返回;存儲器大小計算完畢,即將寫入頁面來測試存儲器。檢查只讀存儲器ROM版本。

47.即將在擴展的存儲器試寫頁面;即將基本640K存儲器寫入頁面。

48.已將基本存儲器寫入頁面;即將確定1MB以上的存儲器。視頻檢查,CMOS重新配置。

49.找出1BM以下的存儲器并檢驗;即將確定1MB以上的存儲器。.

4A.找出1MB以上的存儲器并檢驗;即將檢查BIOSROM數(shù)據(jù)區(qū)。進行視頻的初始化。

4B.BIOSROM數(shù)據(jù)區(qū)的檢驗結束,即將檢查<ESC>和為軟復位清除1MB以上的存儲器。.4C.清除1MB以上的存儲器(軟復位)即將清除1MB以上的存儲器.屏蔽視頻BIOSROM。.4D。已清除1MB以上的存儲器(軟復位);將保存存儲器的大小。.

4E若檢測到有錯誤;在顯示器上顯示錯誤信息,并等待客戶按<F1>鍵繼續(xù)。開始存儲器的測試:(無軟復位);即將顯示第一個64K存儲器的測試。顯示版權信息。

4F讀寫軟、硬盤數(shù)據(jù),進行DOS引導。開始顯示存儲器的大小,正在測試存儲器將使之更新;將進行串行和隨機的存儲器測試。.

50將當前BIOS監(jiān)時區(qū)內(nèi)的CMOS值存到CMOS中。完成1MB以下的存儲器測試;即將高速存儲器的大小以便再定位和掩蔽。將CPU類型和速度送到屏幕。

51.測試1MB以上的存儲器。.

52所有ISA只讀存儲器ROM進行初始化,最終給PCI分配IRQ號等初始化工作。已完成1MB以上的存儲器測試;即將準備回到實址方式。進入鍵盤檢測。

53如果不是即插即用BIOS,則初始化串口、并口和設置時種值。保存CPU寄存器和存儲器的大小,將進入實址方式。.

54.成功地開啟實址方式;即將復原準備停機時保存的寄存器。掃描“打擊鍵”

55.寄存器已復原,將停用門電路A-20的地址線。.

56.成功地停用A-20的地址線;即將檢查BIOSROM數(shù)據(jù)區(qū)。鍵盤測試結束。

57.BIOSROM數(shù)據(jù)區(qū)檢查了一半;繼續(xù)進行。.

58.BIOSROM的數(shù)據(jù)區(qū)檢查結束;將清除發(fā)現(xiàn)<ESC>信息。非設置中斷測試。

59.已清除<ESC>信息;信息已顯示;即將開始DMA和中斷控制器的測試。.

5A..顯示按“F2”鍵進行設置。

5B..測試基本內(nèi)存地址。

5C..測試640K基本內(nèi)存。

60設置硬盤引導扇區(qū)病毒保護功能。通過DMA頁面寄存器的測試;即將檢驗視頻存儲器。測試擴展內(nèi)存。

61顯示系統(tǒng)配置表。視頻存儲器檢驗結束;即將進行DMA#1基本寄存器的測試。.

62開始用中斷19H進行系統(tǒng)引導。通過DMA#1基本寄存器的測試;即將進行DMA#2寄存器的測試。測試擴展內(nèi)存地址線。

63.通過DMA#2基本寄存器的測試;即將檢查BIOSROM數(shù)據(jù)區(qū)。.

64.BIOSROM數(shù)據(jù)區(qū)檢查了一半,繼續(xù)進行。.

65.BIOSROM數(shù)據(jù)區(qū)檢查結束;將把DMA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論