




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
網(wǎng)格回合戰(zhàn)棋游戲是一種在格狀地圖上進(jìn)行的、回合制方式進(jìn)行戰(zhàn)策略性游。玩家需要在地圖上動(dòng)自己的棋子或單位并在回合結(jié)束時(shí)進(jìn)行或采取其他行動(dòng)。游戲通常要求玩家制定策略,考慮如何最有效地利用自己的資源和單位,以擊敗對(duì)手或完成游戲目標(biāo)。網(wǎng)格回合制戰(zhàn)棋游戲通常具有以下特點(diǎn):(1)回合制戰(zhàn)斗,(2)網(wǎng)格狀地圖,(3)策略性。本文將通過(guò)將六邊形網(wǎng)格地圖應(yīng)用到回合制戰(zhàn)棋游戲的研究,目的為了探索使用六邊形地圖與使用傳統(tǒng)的矩形地圖在各方的果優(yōu),決統(tǒng)形地戰(zhàn)游存在一些,同將物素合游中,游主更現(xiàn)實(shí)首,網(wǎng)格回制棋游作要紹然通使用同型格游戲例比析,明究景和義并結(jié)出六邊形地圖的優(yōu)勢(shì),通過(guò)逐步創(chuàng)建地圖,設(shè)計(jì)尋路算法,構(gòu)建回合制游戲關(guān)卡直完整個(gè)戲展這優(yōu)勢(shì)最總本文要成工作并出戲未來(lái)優(yōu)化處關(guān)鍵詞:Unity;戰(zhàn)棋游戲;六邊形網(wǎng)格地圖;回合制ABSTRACTGridturnbasedWarchessgameisastrategicgamethattakesplaceonagridlikemapandengagesinbattlesinaturnbasedmanner.Playersneedtomovetheirchesspiecesorunitsonthemapandengageinbattlesortakeotheractionsattheendoftheturn.Gamestypicallyrequireplayerstodevelopstrategiesandconsiderhowtomosteffectivelyuti-lizetheirresourcesandunitstodefeatopponentsorachievegamegoals.GridturnbasedWarchessgamestypicallyhavethefollowingcharacteristics:(1)turnbasedcombat,(2)gridlikemaps,and(3)strategic.ThisarticlewillstudytheapplicationofhexagonalgridmapstoturnbasedWarchessgames,withtheaimofexploringtheoptimizationoftheef-fectsofusinghexagonalmapsandtraditionalrectangularmapsinvariousaspects,solvingsomeoftheshortcomingsoftraditionalrectangularmapWarchessgames,andintegratinganimalelementsintothegametomakethegamethememorerealistic.Firstly,abriefin-troductionisgiventogridbasedturnbasedWarchessgames.Then,throughcomparativeanalysisofgamecasesusingdifferenttypesofgrids,theresearchbackgroundandsig-nificanceareelucidated.Finally,theadvantagesofhexagonalmapsaresummarized.Bygraduallycreatingmaps,designingpathfindingalgorithms,andconstructingcooperativegamelevels,theentiregameisimprovedtoshowcasetheseadvantages.Finally,summa-rizethemainworkcompletedinthisarticleandpointouttheareaswherethegamecanbeoptimizedinthefuture.KEYWORDS:Unity;Warchessgame;Hexagonalgridmap;Turn-based摘要.......................................... Abstract........................................ 1緒論........................................ 研究背景以及國(guó)內(nèi)外相關(guān)戰(zhàn)棋游戲案例................. 研究?jī)?nèi)容和目的.............................. 研究意義.................................. 2需求分析..................................... 系統(tǒng)概述.................................. 目標(biāo)需求.................................. 開(kāi)發(fā)工具需求.. 用例圖.... 3戰(zhàn)棋游戲“野獸危機(jī)之獸族崛起”的設(shè)計(jì).................. 玩法概述.................................. 游戲創(chuàng)造理念和背景故事設(shè)計(jì)...................... 創(chuàng)作理念.............................. 游戲背景.............................. 六邊形地圖的設(shè)計(jì)............................. 簡(jiǎn)易的六邊形地圖......................... 六邊形地圖的單元格屬性..................... 六邊形地圖的材質(zhì)與渲染..................... 創(chuàng)建地圖相關(guān)的幾個(gè)類(lèi)及其介紹..................... 單元格類(lèi)與坐標(biāo)類(lèi)......................... 地圖網(wǎng)格類(lèi)與游戲單元類(lèi)..................... 地圖編輯器的設(shè)計(jì)............................. 儲(chǔ)存和讀取地圖功能的設(shè)計(jì) 儲(chǔ)存功能設(shè)計(jì)........................... 讀取功能設(shè)計(jì)........................... 六邊形地圖中尋路算法的設(shè)計(jì)...................... 計(jì)算兩個(gè)單元格之間的距離................... 避開(kāi)障礙物和尋路代價(jià)設(shè)計(jì)................... 回合制戰(zhàn)斗設(shè)計(jì).............................. 戰(zhàn)棋單位屬性設(shè)計(jì)......................... 回合制戰(zhàn)斗的設(shè)計(jì)......................... 4主要功能的實(shí)現(xiàn)................................. 編輯地圖功能的實(shí)現(xiàn) 坐標(biāo)轉(zhuǎn)換與索引計(jì)算....................... 底層邏輯設(shè)計(jì)........................... 存儲(chǔ)地圖功能的實(shí)現(xiàn) 讀取和載入文件功能的實(shí)現(xiàn) 地圖的存儲(chǔ)與讀取功能的完善...................... 六邊形地圖中尋路算法的實(shí)現(xiàn)...................... 尋路算法的數(shù)據(jù)結(jié)構(gòu)和大致流程................. 使用廣度優(yōu)先搜索尋路的局限性................. 優(yōu)先級(jí)隊(duì)列的設(shè)置和啟發(fā)算法.................. 回合制戰(zhàn)斗的實(shí)現(xiàn) 回合制函數(shù)的實(shí)現(xiàn)......................... 敵方Ai的簡(jiǎn)要實(shí)現(xiàn)......................... 5游戲功能測(cè)試
.................................. 測(cè)試情況.................................. 主要用例測(cè)試.. 6總結(jié)........................................ 參考文獻(xiàn)....................................... 致謝.......................................... 研究背景以及國(guó)內(nèi)外相關(guān)戰(zhàn)棋游戲案例回合制戰(zhàn)游戲是一種在網(wǎng)格地圖上進(jìn)行的、以回制方式進(jìn)行戰(zhàn)斗的性游戲,簡(jiǎn)稱(chēng)TBS。玩家需要在地圖上移動(dòng)自己的棋子或單位,并在回合結(jié)束時(shí)進(jìn)行戰(zhàn)斗或取其他行動(dòng)。游戲通要求玩家制定策略,慮如何最有效地利用的資源和位,以擊敗對(duì)手或完游戲目標(biāo)。回合制戰(zhàn)游戲的發(fā)展史可以追早期的戰(zhàn)略游戲,如《艾魯斯利德》等。這些游戲奠定了回合制戰(zhàn)棋游戲的基礎(chǔ),為后來(lái)的戲發(fā)展提供了重的參考隨時(shí)的移回制棋游逐發(fā)壯,現(xiàn)許多典作,大的成功,為了回合制戰(zhàn)棋游戲的表作之一其中,《火焰紋章》系列的發(fā)展尤為引人注目。該系列以中世紀(jì)奇幻為背景,玩家需要建自己的軍隊(duì),通過(guò)合制戰(zhàn)棋的方式進(jìn)行斗。隨著系列的發(fā)展戲玩法和劇情斷豐富和完善,吸引了越越多的玩家從期“家士”風(fēng)靡球“雄”系,到今井的展,TBS游戲已經(jīng)成為僅次于游戲類(lèi)型霸主RPG游戲(Role-playinggame,角色)型端TBS作、輕量級(jí)、碎片化時(shí)間而擁有更大的發(fā)展?jié)摿1]。除了火焰紋》系列,有許多他優(yōu)秀回合制戰(zhàn)游戲問(wèn),如《夢(mèng)《操》操作統(tǒng)式疑是為美。它前代《英傳優(yōu)集身,大程的近操者。使初接觸個(gè)戲也能常的悉的作點(diǎn)。戲?qū)γ宽?xiàng)的令有細(xì)的釋包兵特性物特、形性、斗傷數(shù)攻擊功和役提等等都無(wú)遺,使最限地了游數(shù)的涵意,而好地入游中去光公花在加強(qiáng)游戲操控人性化上的認(rèn)真態(tài)度,是絕對(duì)值得表?yè)P(yáng)的[2]。以上這些游戲都是以矩形單元格作為地圖,傳統(tǒng)的矩形單元格地圖優(yōu)點(diǎn)如下:(1)直觀易懂。由于玩家在日常生活中接觸的大部分物體都是矩形或者類(lèi)矩形,因此矩形地圖更符合玩家的視覺(jué)習(xí)慣,降低了學(xué)習(xí)和適應(yīng)的門(mén)檻。(2)設(shè)計(jì)簡(jiǎn)單。從設(shè)計(jì)度看,形容制和編。是們也不現(xiàn)樣的圖樣存在一些缺陷,如下:(1)空白區(qū)域較多,在相同面積下,矩形地圖的空白區(qū)域相對(duì)較多,可能會(huì)影響游戲的視覺(jué)體驗(yàn)。(2)對(duì)角線(xiàn)移動(dòng)受限。(3)處于這種地圖上的村莊建物單元由矩網(wǎng)的限,會(huì)擺放過(guò)橫工整給顯得非機(jī)械和死板印象 研究?jī)?nèi)容和目的本研的心是探六邊地單格戰(zhàn)游中的優(yōu)勢(shì)以升戲整觀賞和學(xué)值通過(guò)用邊單元,戲圖的元排將展更的美,時(shí)戰(zhàn)單位移可控性將到著增。六形圖,位可向個(gè)向動(dòng),較傳的四方,無(wú)疑大提了位動(dòng)靈活和略。外,于路的優(yōu),邊形圖提了加一框架使算設(shè)計(jì)為捷高。在次究,我將邊坐系將傳的面角標(biāo)系換六形坐系并此基上建圖各屬,如路法回制算等設(shè)計(jì)色戰(zhàn)單,不斷善戲關(guān)卡,以創(chuàng)造一獨(dú)特且引人入勝的戰(zhàn)棋游戲案例,提供實(shí)踐意義 研究意義本次研究將六邊地圖單元格應(yīng)用于戰(zhàn)棋游戲,可結(jié)出以下意義(1)將六邊形地圖單元格應(yīng)用于戰(zhàn)棋游戲可提升游戲的整體觀賞性和美學(xué)價(jià)(2)將六邊形地圖單元格應(yīng)用于戰(zhàn)棋游戲,對(duì)于尋路等算法的優(yōu)化,提供了更加統(tǒng)一的框,使得算法設(shè)計(jì)更為捷和高效(3)戰(zhàn)棋游戲在游戲歷史上具有重要的地位,對(duì)其進(jìn)行發(fā)展創(chuàng)新,回合制戰(zhàn)棋游戲?qū)⒗^續(xù)發(fā)壯大,為玩家?guī)?lái)更加豐的游戲體驗(yàn) 系統(tǒng)概述通過(guò)分析國(guó)內(nèi)外游戲案例的析,相比六邊形地圖矩形地圖在對(duì)角線(xiàn)上可能較受限,這可能會(huì)影響一些要靈活移動(dòng)策略游戲的平衡性,假設(shè)在矩形地圖上進(jìn)行對(duì)角線(xiàn)移動(dòng),如果將單元格邊長(zhǎng)假設(shè)為1,我們令游戲單位,水平或者豎直移動(dòng)一格,移動(dòng)的距離等于邊長(zhǎng)1,但是我們會(huì)發(fā)現(xiàn)斜方像移動(dòng)移動(dòng)的距離為√3,這在我們計(jì)算不同游戲單位的距離,以及開(kāi)發(fā)尋路算法時(shí),顯得十分不方便,且只能水平或豎直的動(dòng)單位,在視覺(jué)上顯十分僵硬。為了解決是使用六邊形單元格作為地圖。對(duì)比矩形地圖,六邊形地圖有以下優(yōu)點(diǎn):(1)緊密排列:六形可以更緊密地排列一起,減少了地圖中空白區(qū)域,使地圖看更加充實(shí)和細(xì)致。(2)自然適應(yīng)性:六邊形的形狀更符合自然界中許多物體的形狀,如蜂巢、甲等,因此在某些以然世界為背景的游戲,六邊形地圖可能更入感,擺放建筑物,水池,河流等單位時(shí),排列能顯得更加自然美觀。(3)更好的對(duì)角線(xiàn)移:六邊形地圖可以更便地實(shí)現(xiàn)對(duì)角線(xiàn)移動(dòng)這對(duì)于一些需要靈活策略的游來(lái)說(shuō)是一個(gè)重要優(yōu)勢(shì)同樣在計(jì)算距離及尋算法中,由于六個(gè)方動(dòng)一個(gè)單的距離是相同的,能方便計(jì)算。本文將利以上優(yōu)點(diǎn),逐步創(chuàng)建 目標(biāo)需求(1)六邊形地圖。采用六邊形網(wǎng)格地圖作為戰(zhàn)場(chǎng)場(chǎng)景,提供多樣的地形和障礙物,增策略性和游樂(lè)趣(2)單位多樣性。設(shè)計(jì)種的戰(zhàn)棋單位,每種單位有獨(dú)特的屬性(3)關(guān)卡設(shè)計(jì)設(shè)置多個(gè)戰(zhàn)斗關(guān)和任務(wù)(4)保存和加。實(shí)現(xiàn)游戲進(jìn)度的保存加載功能(5)地圖編輯。能夠?qū)Φ貓D進(jìn)行編輯,并且能夠保存與讀取,以及基于此實(shí)現(xiàn)創(chuàng)模(6)回合制戰(zhàn)。實(shí)現(xiàn)玩家與電腦之間的合制戰(zhàn)斗 開(kāi)發(fā)工具需求(1)游戲引擎Unity2021,以其強(qiáng)大的跨平臺(tái)支持和高度靈活的特性,為我們的游戲項(xiàng)目提供了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。(2)VisualStudio2019,為了充分利用Unity強(qiáng)大代碼輯、調(diào)試和性能分析具,使得游戲開(kāi)發(fā)過(guò)更為高效,且易于維優(yōu)化。在Unity和VisualStudio的協(xié)同工作下,我們得以順利實(shí)現(xiàn)游戲的各項(xiàng)功能,包括復(fù)雜的交互輯、精美的畫(huà)面渲染以及流的用戶(hù)體驗(yàn) 用例圖本游需要實(shí)主要功能:回合戰(zhàn)斗,圖編輯器創(chuàng)造模,戰(zhàn)棋的及為地讀保等游戲功用例圖如圖示 戰(zhàn)棋戲野危之獸崛”對(duì)軟架構(gòu)和能塊劃分究各模之的各技不,要究種術(shù)之的聯(lián),將各技很地融起實(shí)需求需對(duì)構(gòu)進(jìn)行究,出良的系架構(gòu)究何根需分劃分個(gè)能塊的功能和邏輯,為編程實(shí)現(xiàn)做好準(zhǔn)備[3]。 玩法概述“野獸危之獸族崛起”是回合戰(zhàn)棋游戲一核玩:位控玩家過(guò)控方位進(jìn)移動(dòng)攻,衛(wèi)標(biāo)建筑或逃離至撤離點(diǎn)?;睾现茩C(jī)制:游戲采用回合制,屏幕上方設(shè)有行動(dòng)順序欄實(shí)顯敵我方動(dòng)序行動(dòng)系:個(gè)友單擁兩個(gè)動(dòng),進(jìn)移、戰(zhàn)攻或用能每次作耗動(dòng)點(diǎn)并重復(fù)行種作二,戲關(guān)卡紹戲設(shè)三,一都不的目三游戲目消滅敵方單位:消滅所有敵方單位達(dá)成勝利條件。保護(hù)目標(biāo)建筑:在此關(guān)卡中玩需保衛(wèi)標(biāo)筑被族摧。離離點(diǎn)在關(guān)中,家要控單位從族追逐中逃離至目標(biāo)離點(diǎn)等四游戲特多樣的獸族單位:游戲中有多種具有特殊能力的獸族單位,為戰(zhàn)斗增添策略性豐的卡設(shè)計(jì)個(gè)卡有獨(dú)特形敵人置考玩家策布和控巧戰(zhàn)略微并:戲既驗(yàn)家整體略局也要玩在斗中精操控每一個(gè)位五用戶(hù)界行動(dòng)條顯:游戲屏幕上方設(shè)行動(dòng)順序欄,清晰顯敵我雙方單位的行序。控制面板:玩家點(diǎn)擊所在單元格為綠色的單位時(shí),呼出控制面板,進(jìn)行移動(dòng)、攻擊使用技能等作 游戲創(chuàng)造理念和背景故事設(shè)計(jì) 為了驗(yàn)證六邊形單元格地圖在戰(zhàn)棋游戲中的應(yīng)用的優(yōu)點(diǎn),通過(guò)制作戰(zhàn)棋游戲“野獸危機(jī)之獸族崛起“來(lái)實(shí)踐出真知。本游戲的理念源于對(duì)策略游戲體驗(yàn)的追求,以及講述一個(gè)野獸動(dòng)物的覺(jué)醒和進(jìn)化與人類(lèi)產(chǎn)生矛盾,從而產(chǎn)生斗爭(zhēng)的故事。打造一個(gè)既富有挑戰(zhàn)性又充滿(mǎn)奇幻色彩的戰(zhàn)棋世界,讓玩家在沉浸式的游戲體驗(yàn)中感受到略與智慧的較量,以種族崛起所帶來(lái)的震與榮耀。在游戲中,強(qiáng)調(diào)種族性的獨(dú)特性和策略的要性,在六邊形單元地圖中水池,山等模阻礙單位通行,道路模塊能降該格尋路的代價(jià),使在尋路是單元更傾向路,以及種特殊的地圖構(gòu)成模,在”野獸“這一方,為每一個(gè)動(dòng)物設(shè)計(jì)種特殊的力,例如雞,既可以獸族投遞雞蛋為其回生命,又可以向玩家雞蛋造成害,狼的特殊能力是叫,提升所有獸族的動(dòng)格數(shù),以及其余幾物,讓玩在精心策劃和布局的程中體驗(yàn)到戰(zhàn)略和策的無(wú)窮魅力。同時(shí),注重劇情的深度塑造,讓玩家在游戲中進(jìn)行思考到底哪一方是正義等哲學(xué)性問(wèn)題,感受到色與劇情之間的密聯(lián)系和互動(dòng)這一切都在六邊單元格地圖中現(xiàn)總來(lái),創(chuàng)作念野獸崛并類(lèi)對(duì)賦予了游別的彩而圖的各模相配豐富游的略性而些基于邊網(wǎng)地來(lái)現(xiàn)通過(guò)次作驗(yàn)六邊網(wǎng)地在戰(zhàn)游中應(yīng)用和于統(tǒng)矩網(wǎng)格的點(diǎn) 在遠(yuǎn)古,在神秘而幻大。片上,各野動(dòng)類(lèi)同活彼此維著妙平衡然,著時(shí)的逝野獸開(kāi)覺(jué)自我意識(shí),它們不再滿(mǎn)足于僅僅作為大自然的生物,而是渴望擁有更多力量與地野的醒非然而受到古神秘的響這股量自陸處當(dāng)獸接觸這力時(shí)它們智與能得了大提,開(kāi)擁獨(dú)特特殊能這特能使野們生態(tài)統(tǒng)占了加要地位例,些獸夠控然元,發(fā)電風(fēng)暴火;一些擁治或提獸移速的力它們始建己族群與人奪土地源甚至戰(zhàn)類(lèi)統(tǒng)地人類(lèi)于野獸覺(jué)醒感到驚和不。他們心自己的治地位到威脅,是開(kāi)始組織隊(duì),與野獸族群開(kāi)對(duì)抗在場(chǎng)爭(zhēng)中類(lèi)漸認(rèn)識(shí)獸特能并邪,而大然予們力。始反自的為,圖野和平處共維護(hù)陸平與諧然,獸群有一些端子它渴完掌控陸將類(lèi)為等物這野獸袖始求加強(qiáng)的量甚至惜黑勢(shì)力盟以得更大的武器和量面對(duì)這樣威脅,人類(lèi)必須團(tuán)起來(lái),利用自己的智和力量,保衛(wèi)自己園。他們開(kāi)始研究野獸的特殊能力,尋找對(duì)抗它們的方法。在這場(chǎng)斗爭(zhēng)中,智慧、勇氣和團(tuán)將成為人類(lèi)最強(qiáng)的武器這就是“獸危機(jī)之獸族崛起的游戲背景。玩家將演人類(lèi),參與到這烈的斗爭(zhēng)中。體驗(yàn)策略與智慧的較量,感受種族崛起所帶來(lái)的震撼與榮耀。同時(shí),他們也將思考正義與惡的定義,探索與野獸和共處的可能性 六邊形地圖的設(shè)計(jì) 在Unity中實(shí)現(xiàn)六邊形地圖,首要步驟是定義地圖的基本單元——六邊形。六邊形的創(chuàng)建涉及多個(gè)關(guān)鍵屬性,包括其六個(gè)頂點(diǎn)的坐標(biāo)、外接圓半徑和內(nèi)切圓半。些性同定邊的狀大。統(tǒng)管和用些,們創(chuàng)建了一個(gè)名為“HexMetrics”的公共靜態(tài)類(lèi)。該類(lèi)包含了一個(gè)靜態(tài)的三維向量數(shù),數(shù)包含個(gè)量每向量表邊的一個(gè)坐。外,中定表示接圓內(nèi)圓徑浮點(diǎn)常,些常用控六邊的小比例。接下來(lái),我們創(chuàng)建了一個(gè)名為“HexCell”的類(lèi),用于表示六邊形地圖中的單單格這個(gè)包了元的中坐等鍵屬,允我們其例并掛載在Unity中的空對(duì)象上。一旦創(chuàng)建好HexCell類(lèi)并將其制作成預(yù)制體,我們就可使這預(yù)制來(lái)構(gòu)個(gè)圖。生成個(gè)六形格圖,們建一個(gè)名為“HexGrid”的類(lèi)。在這個(gè)類(lèi)中,我們使用雙重循環(huán)來(lái)遍歷地圖中的每個(gè)位置,并在每個(gè)位置上實(shí)例化HexCell預(yù)制體。這個(gè)過(guò)程創(chuàng)建了一個(gè)由多個(gè)六邊形單元組成的網(wǎng)格構(gòu)圖1準(zhǔn)確的地網(wǎng)格很明顯,樣的地圖網(wǎng)格并不我們想要的,理想的圖網(wǎng)格應(yīng)該是類(lèi)似那種緊密列的樣式,因此我們做一些調(diào)整:由于實(shí)化單元格雙循環(huán)是按次進(jìn)行,所以每實(shí)例化一行,下一就在x軸方向向左偏移一個(gè)六邊形內(nèi)接圓半徑這樣做單元格列緊密了,但是網(wǎng)格整體形表現(xiàn)為菱形圖2準(zhǔn)確的地網(wǎng)格顯一游設(shè)的幕為矩,以們把圖整為形具做為與一隔幾,向移個(gè)內(nèi)圓徑量,往上第行開(kāi),過(guò)調(diào)整我們得到如下網(wǎng)地圖圖3確的地網(wǎng)格 六地元地圖的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)是整個(gè)游戲算法的基礎(chǔ)[4]。在Unity中,為六邊形地圖的單元格添加屬性是構(gòu)建功能豐富游戲世界的關(guān)鍵步驟。這些屬性不僅影響游戲單位的移動(dòng)、尋路、索敵等機(jī)制,還為游戲提供了豐富多樣的交互體驗(yàn)。首先,坐標(biāo)系統(tǒng)是六邊形地圖的核心屬性之一。傳統(tǒng)的直角坐標(biāo)系雖然可以表示每個(gè)六邊形單元格的中心坐標(biāo),但對(duì)于交錯(cuò)排列的六邊形網(wǎng)格來(lái)說(shuō),其表示方式并不直觀。因此,我們引入六邊形坐標(biāo)系來(lái)更準(zhǔn)確地描述單元格的位置。在六邊形坐標(biāo)系中,x坐標(biāo)系的x坐標(biāo)除以六邊形單元格的內(nèi)接圓直徑(即水平寬度)即可得到六邊形坐標(biāo)系的X坐標(biāo),對(duì)其取負(fù)值,可以得到Y(jié)坐標(biāo)。沿Z軸移動(dòng)時(shí),每走一格,X坐標(biāo)偏們就完成了從角坐標(biāo)系到六邊形坐系的轉(zhuǎn)換,并在UnityInspector面板中顯了六邊形坐標(biāo)屬性。除了坐標(biāo)屬性外,單元格還包含其他重要的屬性。HexCell類(lèi)如3.3.3六邊形地圖的材質(zhì)與渲染此時(shí)們的地單元格還一塊白,不能示地圖的種地形我們?cè)黾蛹訋追N地形材質(zhì),分別:草地,泥地,沙地,雪地,地,水池,道路圖幾種質(zhì)這些材在編輯地圖時(shí)用上 創(chuàng)建地圖相關(guān)的幾個(gè)類(lèi)及其介紹3.4.1單元格類(lèi)與坐標(biāo)類(lèi)單格類(lèi)HexCell坐標(biāo)(HexCoordinates)圖如圖5標(biāo)類(lèi)和單格類(lèi)功能介紹:于邊中個(gè)。包元坐(Coordinates)尋路代價(jià)(distance),地形高度(elevation),鄰近單元格(neihbors),記錄路徑的節(jié)點(diǎn)(Pathto),除此之外還有地形索引,判斷是否有某種地形的方法,以及尋路優(yōu)先級(jí)等屬性。該類(lèi)是構(gòu)六邊形地圖的核心,與編輯地圖,尋等重要功能相關(guān)oordinates:主要能是將元格的直坐標(biāo)轉(zhuǎn)成六邊坐標(biāo)并且回結(jié)果其次就是算兩個(gè)元格坐標(biāo)之間距離 地格戲地網(wǎng)格(HexGrid與游單類(lèi)(HexUnit)圖如圖6標(biāo)類(lèi)和單格類(lèi)功介rid:負(fù)責(zé)地圖的創(chuàng)建,保存,讀取,尋路功能的實(shí)現(xiàn),以及編輯模式下戰(zhàn)棋單元的創(chuàng)建,并且將地圖上的所有戰(zhàn)棋單元,建筑物單位分別存入units和Buildings列表中,并對(duì)其進(jìn)行統(tǒng)管理.HexUnit負(fù)責(zé)示戰(zhàn)棋元的生命,位置行動(dòng)速,類(lèi)型等性,同控制著單是死 地圖編輯器的設(shè)計(jì)在成礎(chǔ)六形格圖后為了游設(shè)計(jì)樣性求我需一個(gè)全的地編器這編輯不僅提供觀易的界,需具編地、高、加流道路建物植被多功。同,輯還需要支持對(duì)敵方單位進(jìn)行回合制行動(dòng)的設(shè)置,并且能夠保存和加載編輯后的地圖編輯式 儲(chǔ)存和讀取地圖功能的設(shè)計(jì) 在HexMapEditor,們需確要存類(lèi)型對(duì)。先從圖中需保的息,減存空和提游性。對(duì)地,們知整六形網(wǎng)格地圖是通過(guò)雙重循環(huán)生成并存儲(chǔ)在二維數(shù)組中,每個(gè)單元格都有確定的坐標(biāo)索。于地、筑戰(zhàn)單位對(duì),們可它們分別創(chuàng)一個(gè)int在作索而象,減內(nèi)存占3.6.2讀取功能設(shè)計(jì)讀取能就是已經(jīng)儲(chǔ)存的地圖件數(shù)據(jù)過(guò)循環(huán)遍獲取,后根據(jù)獲的地形或者筑物等索引將地圖的細(xì)加載出來(lái) 六邊形地圖中尋路算法的設(shè)計(jì) 計(jì)兩個(gè)格的尋操都基坐進(jìn)的,設(shè)們知單元的六形標(biāo)通其六邊形坐標(biāo)來(lái)計(jì)算其曼哈頓距離,由于六邊形坐標(biāo)系的特殊性,我們?nèi)∫粋€(gè)坐標(biāo)(x,y,z)中絕對(duì)值最大者與另外一個(gè)坐標(biāo)中的絕對(duì)值最大者,進(jìn)行作差,即可得到其哈頓距 避礙尋代價(jià)通過(guò)計(jì)算所得的距離與從單元格到其他每個(gè)單元格的最短路徑的長(zhǎng)度相匹配。但是,只在沒(méi)有任何阻礙的情下,這些路徑才能保有效。但是在地圖中單元格可能存在水池,懸崖等障礙物,這些屬于不可通過(guò)的地形,在尋路過(guò)程中,利用單元格的是否有水,懸崖(指兩個(gè)單元格之間地形高度之差大于等于2)等屬性去判斷,當(dāng)遇到些地形時(shí),跳過(guò)這些單元格,從而到避障的效果另一種情況則是上坡,當(dāng)相鄰兩個(gè)單元格地形高度相差為1時(shí),且地形為可通行的地形類(lèi),這樣的多個(gè)單元組合在一起就會(huì)形成。而在現(xiàn)實(shí)中,同等的路段,上坡較之走平地必然要耗費(fèi)更多力氣。因此當(dāng)?shù)貓D中存在這樣的地形時(shí),尋路代價(jià)高度差加最是路尋代價(jià),當(dāng)在路,道所單元尋代價(jià)不,且附近他元的路代價(jià)一值,樣證路時(shí)先慮 回合制戰(zhàn)斗設(shè)計(jì)戰(zhàn)棋游戲的“棋子”一般為具有一定屬性的人物或生物,其“棋盤(pán)”一般為一定行數(shù)和列數(shù)的網(wǎng)格,每個(gè)網(wǎng)格有一定屬性。每個(gè)“棋子”具有行動(dòng)優(yōu)先級(jí),在固定回合每方只能控制固定的“棋子”行動(dòng)[5]。 在戰(zhàn)游戲中,著多方元素在游中體現(xiàn),如飛機(jī),克、步兵,對(duì)各種素都以能量的形式進(jìn)行體現(xiàn)[6]。戰(zhàn)棋陣營(yíng)分為人類(lèi)和獸族,它們都有名稱(chēng),生命值,行動(dòng)速度,攻擊力等屬性,所以創(chuàng)建HexUnit類(lèi)(戰(zhàn)棋單元類(lèi))用來(lái)封裝這些屬性,除此之外,我們需要知道其位于地圖網(wǎng)格哪一個(gè)單元格,因此在類(lèi)中添加Hexcell類(lèi)型的Location屬性,用表示其所在單元格獸族共有五種,與人類(lèi)為對(duì)抗關(guān)系玩家控制人類(lèi)表1棋單位性表最后還有建筑物,為不會(huì)攻擊移動(dòng)的房屋,生命值為100,需要玩家對(duì)其進(jìn)行保護(hù),若破壞,可能導(dǎo)致戲失敗 首先本游戲回合制中包括:位行動(dòng)序,玩家合,敵方合,行AI,等要游戲AI系統(tǒng)跟人腦類(lèi)似,可以分為感知輸入,記憶存儲(chǔ),推理判斷,以及最終的決策輸出[7]。在電子游戲的設(shè)計(jì)與開(kāi)發(fā)中,游戲人工智能(ArtificialIntelligence,AI)的設(shè)計(jì)是一個(gè)重要環(huán)節(jié),是影響玩家體驗(yàn)的一個(gè)關(guān)鍵因素[8]。回合游戲也一款需要究策略游戲?;睾现朴蔚脑O(shè)計(jì),需考慮家角色的各大方面,是否設(shè)計(jì)合理也是玩家體驗(yàn)感好的關(guān)鍵原因[9]。下面用流程表示本游戲的回合制斗的進(jìn)行 編輯地圖功能的實(shí)現(xiàn) 坐由于我們的地圖是基于六邊形網(wǎng)格的,因此需要將獲取到的三維坐標(biāo)轉(zhuǎn)換成六邊形的(X,Z)坐標(biāo)。這里,X代表水平軸,Z代表斜右上軸。所有實(shí)例化的單元格都存儲(chǔ)在一個(gè)二維數(shù)組中,而單元格數(shù)組的索引“Index”與坐標(biāo)x和z的數(shù)學(xué)形地圖,式就是成立的,但是文研究的是基于六邊地圖之上,在六邊形中,由于地圖行與行之間的每個(gè)單元格相互交錯(cuò),從原點(diǎn)開(kāi)始沿著z軸每移動(dòng)一單元格,相較于運(yùn)動(dòng)之前的單元格,下一個(gè)單元格就向右偏移1.5個(gè)單元格水平寬度,此時(shí)地圖是菱形的,由于在創(chuàng)建地圖的步驟中對(duì)偏移量向下取整,將菱形地圖調(diào)了Index而確的Index夠從組中得對(duì)單元 編輯器的底層邏輯是整個(gè)編輯功能的基礎(chǔ)。首先,我們需要設(shè)定一個(gè)編輯模式只在模式才進(jìn)編操作當(dāng)家擇某地或體時(shí)系會(huì)相應(yīng)的預(yù)制體賦值給一個(gè)臨時(shí)對(duì)象。在Update方法中,通過(guò)檢測(cè)鼠標(biāo)左鍵點(diǎn)擊和射線(xiàn)射我可以取被擊單元的維標(biāo)。于個(gè)元格掛了格撞,此無(wú)點(diǎn)的單格的個(gè)分我們能確取到撞的心置通標(biāo)轉(zhuǎn)運(yùn),單格數(shù)中到單元,后目預(yù)制實(shí)化成獲的單格標(biāo),者刪此存的預(yù)體例從而到輯刪的果無(wú)論編地類(lèi),地高,棋單,被建筑等是用一套邏 存儲(chǔ)地圖功能的實(shí)現(xiàn)具體實(shí)現(xiàn)存儲(chǔ)功能的步驟如下:(1)在HexCell類(lèi)中添加相應(yīng)的索引,如地形類(lèi)型、地形高度、水、戰(zhàn)棋單位類(lèi)型等。當(dāng)在單元格上放置這些對(duì)象時(shí),同時(shí)為單元格的索引屬性賦值,確保索引與對(duì)象一一對(duì)應(yīng),以確保存儲(chǔ)的準(zhǔn)確性。(2)在HexMapEditor中創(chuàng)建Save函數(shù),并逐步實(shí)現(xiàn)存儲(chǔ)功能。首先引入System.IO命屬性獲取持久化數(shù)據(jù)目錄路徑,再利用Path.Combine方法將路徑和文件名組合,創(chuàng)建(3)BinaryWriterwriteren(Path,FileMode.Create)的返回值賦給writer,F(xiàn)ile.Open方法用于打開(kāi)文件并返回一個(gè)FileStream對(duì)象,表示對(duì)文件的引用。參數(shù)Path為目標(biāo)路徑,F(xiàn)ileMode.Create指示如果文存在建,在覆。(4)writer寫(xiě)入,例使writer.Write(123)將整數(shù)”123”寫(xiě)入文件。最后使用writer.Close()結(jié)束寫(xiě)入。為了確保資源管理的完整性和避免內(nèi)存泄漏,使用using語(yǔ)句限定存儲(chǔ)范圍,將寫(xiě)入操作放內(nèi)以根據(jù)需要擴(kuò)展儲(chǔ)的內(nèi)容和格式,確保數(shù)據(jù)的整性和準(zhǔn)確性 讀取和載入文件功能的實(shí)現(xiàn)步驟相同。在得到路徑Path后,創(chuàng)建一個(gè)”BinaryReaderreader”,將”newBinaryReader(File.Open(path,FileMode.Open))”的返回值賦值給reder,類(lèi)似于儲(chǔ)存,其作用是用于從定的件路徑”P(pán)ath”取二進(jìn)數(shù)據(jù)下一行輸入:”Debug.Log(reader.ReadInt32());”其作用是在控制器中輸出讀取到的int類(lèi)型數(shù)據(jù),依次調(diào)用Save(),load(),再檢查控制臺(tái),發(fā)現(xiàn)輸出了”123”,這也驗(yàn)證了簡(jiǎn)易的儲(chǔ)存和讀取的功能的成功實(shí)現(xiàn)。同樣也使用using將讀取工作運(yùn)行范圍進(jìn)行限定這樣讀取的大致功能完成了 地圖的存儲(chǔ)與讀取功能的完善這些信息存入自定義命名的地圖文件中。修改HexMapEditor中的Save()函數(shù),使其可以輸入圖文件名,根據(jù)輸入名字創(chuàng)建路徑,確認(rèn)存后,將名字保存在中,并提供覆蓋保存、刪除等選項(xiàng)。在單元格類(lèi)中創(chuàng)建HexCell.Save(BinaryWriterwriter)公共函數(shù),將單元格的Index信息依次用writer存入文件中。在HexGrid網(wǎng)格類(lèi)中創(chuàng)建HexGrid.Save(BinaryWriterwriter)函數(shù),該函數(shù)通過(guò)循環(huán)調(diào)用所有單元格的HexCell.Save()方法。最后在HexMapEditor.Save()方法中,使用using語(yǔ)句限定存儲(chǔ)操作范圍,調(diào)用HexGrid.Save方法,參數(shù)為獲取到的自定義文件路徑的writer。最后將HexMapEditor.Save函數(shù)綁定在UI界面的”保存”按鈕上。通過(guò)以上步驟,在運(yùn)行后編輯完地圖,點(diǎn)擊”保存”按鈕即可完成地圖單元格細(xì)節(jié)的存儲(chǔ)。讀取部分的邏輯與存儲(chǔ)類(lèi)似。在HexGrid.load(BinaryReaderreader)方法中調(diào)用所有單元格HexCell.load(BinaryReaderreader)。HexMapEditor.Load()使using限定讀取操作范圍,調(diào)用HexGrid.load(BinaryReaderreader)方法,參數(shù)為獲取到的文件路徑的reader。將該方法綁定在”讀取”按鈕上,運(yùn)行時(shí),在列表中選中已經(jīng)自定義存儲(chǔ)的文件,點(diǎn)擊按鈕即可讀取。在從二進(jìn)制文件中依次讀取到單元格的各種索引后,新建一個(gè)Fresh函數(shù),用于根據(jù)索引更新單元格的細(xì)節(jié)。通過(guò)以上步驟,完成整個(gè)取工作。以上是完善圖存儲(chǔ)與讀取功能的要步驟,通過(guò)這些操以實(shí)現(xiàn)地?cái)?shù)據(jù)的有效保存載入 六邊形地圖中尋路算法的實(shí)現(xiàn) 尋算的結(jié)和致使協(xié)程型),函參數(shù)為HexCell元格類(lèi)(類(lèi)中包尋路代價(jià)性,回鄰單元以及修改尋路代價(jià)的方法等),在HexCell中創(chuàng)建HexCell類(lèi)型的Pathto屬性,其作用是為了錄路徑點(diǎn)(2)使用廣度優(yōu)先搜索尋路算法的大致流程:在尋路之前將地圖網(wǎng)格中數(shù)組中的所有單元格的尋路代價(jià)設(shè)為int.MaxValue(表示從未遍歷過(guò)該節(jié)點(diǎn)),且將參數(shù)起點(diǎn)單元格入隊(duì)(參數(shù)只有兩個(gè),其意義是起點(diǎn)單元格和終點(diǎn)單元格),將隊(duì)列第一個(gè)素為前元,單格心,其六鄰單格隊(duì)時(shí)照形別這些元賦尋代價(jià)以通比較這近元格尋的大小,將尋路代價(jià)最小的鄰近單元格賦值給目標(biāo)單元格的Pathto屬性,下一步就是隊(duì)首單元出,此次搜函執(zhí)完畢后就不斷代行函的程直至前元為點(diǎn)單格至整個(gè)索程束而路的取則是通過(guò)終點(diǎn)的Pathto屬性不斷讀取其子節(jié)點(diǎn)Pathto屬性,從而獲得一條完整的徑 使廣度索路局訪問(wèn)它,們知道到所選單元格距離為零。只要可以動(dòng),所有鄰居的距離1。然后,我們可以看看這些鄰格之一。這個(gè)單元可能有自己的鄰格,這些鄰格是可以到達(dá)的,但還沒(méi)有距離。如果是這樣,這些鄰居的距離必須為2。我們可以對(duì)距離為1的所有鄰居重復(fù)此操作。之后,我們對(duì)距離2處的所有鄰居重復(fù)此操作。依此類(lèi)推,直到我們到達(dá)所有單元格。因此,我們首先找到距離1處的所有單元格,然后找到距離2處的所有單元格,然后是距離3處的所有單元格,直到完成。這保證了們找到到每個(gè)可到達(dá)元格的最小距離。但地圖中會(huì)存在障礙物度優(yōu)先搜算法的前提條件之一搜索范圍內(nèi)的所有節(jié)都能被遍歷到,顯然棋地圖不足這點(diǎn)條件,因?yàn)榈刂锌赡軙?huì)存在不可通的障礙物,以及不同代價(jià)的地,尋路
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030冷鏈物流行業(yè)發(fā)展痛點(diǎn)與數(shù)字化轉(zhuǎn)型路徑研究報(bào)告
- 2025-2030冷鏈物流溫控技術(shù)革新與行業(yè)標(biāo)準(zhǔn)體系建設(shè)研究報(bào)告
- 2025-2030冷鏈物流智能化裝備滲透率提升與運(yùn)營(yíng)效率優(yōu)化研究報(bào)告
- 2025-2030冷鏈物流智能化改造需求與設(shè)備升級(jí)趨勢(shì)報(bào)告
- 2025-2030冷鏈物流智能化改造市場(chǎng)需求與基礎(chǔ)設(shè)施建設(shè)規(guī)劃研究
- 2025-2030冷鏈物流無(wú)人機(jī)配送網(wǎng)絡(luò)優(yōu)化與風(fēng)險(xiǎn)控制策略報(bào)告
- 2025-2030冷鏈物流基礎(chǔ)設(shè)施投資回報(bào)與區(qū)域發(fā)展?jié)摿?bào)告
- 2025-2030農(nóng)林生物質(zhì)轉(zhuǎn)化高值產(chǎn)品技術(shù)路線(xiàn)與經(jīng)濟(jì)可行性研究
- 2025-2030農(nóng)村互助養(yǎng)老可持續(xù)發(fā)展模式與政策建議
- 幼兒語(yǔ)言教育案例分享
- 可信數(shù)據(jù)空間解決方案星環(huán)科技
- 2025廣西專(zhuān)業(yè)技術(shù)人員公需科目培訓(xùn)考試答案
- 西安教師入編協(xié)議書(shū)
- 《高齡臥床高危靜脈血栓栓塞癥防治中國(guó)專(zhuān)家共識(shí)》解讀
- 臨床護(hù)理技術(shù)操作并發(fā)癥與應(yīng)急處理
- 2025至2030年中國(guó)LNG加氣站行業(yè)深度調(diào)研及投資前景預(yù)測(cè)報(bào)告(上下卷)
- ZYJ電液轉(zhuǎn)轍機(jī)的維護(hù)信號(hào)基礎(chǔ)設(shè)備課件
- 頂板在線(xiàn)監(jiān)測(cè)管理制度
- 大學(xué)生個(gè)人簡(jiǎn)歷模板大全
- 2025年柳州鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)新版
- 招投標(biāo)程序?qū)徲?jì)報(bào)告范文
評(píng)論
0/150
提交評(píng)論