欧美日韩在线高清视频 I 韩国18禁啪啪无遮挡免费 I 国产系列丝袜熟女精品视频 I 夜夜干夜夜操 I 在线观看的av网站 I www.av蜜桃 I 毛片新网址 I 成年人免费观看毛片 I 国产精品久久国产精品99 gif I 欧美一级三级 I 久久久久久久久18久久久 I www黄色com I 少妇富婆一区二区三区夜夜 I 欧美伊人久久大香线蕉综合 I 国产在线不卡视频免费视频 I 色情无码一区二区三区 I 狠狠操狠狠干狠狠爱 I 成人乱淫av日日摸夜夜爽节目 I 日日插日日操 I 国产精品自产拍在线观看55亚洲 I 午夜草草 I 日韩午夜网站 I 成人免费淫片视频软件 I 国产情侣一区二区 I 精品国产一区二区三区四区四 I 国产乱理伦片在线观看 I 国产精品乱子伦xxxx裸 I 在线观看亚洲欧美 I 国语a在线看免费观看视频 I 免费国产污网站在线观看15

您的位置:首頁 >觀察 > 正文

每日速看!DH-SRPG 三:單位的出戰與部署

大多數戰棋游戲都有予玩家在戰斗開始前根據游戲的局勢對作戰單位的挑選以及位置部署的能力,本項目也是如此的。現在來看看在本項目中的單位出戰功能與部署功能是如何實現的。

這是單位挑選場景的節點結構的折疊圖(完整的節點樹見文章末尾),有6部分:

(注:CR為custom_這個場景的縮寫,沒有實際意義)


【資料圖】

TitleCR:顯示標題

UnitInfo: 顯示Pointer指向的單位的信息。

InfoCR:顯示如已出戰人數等信息

UnitList:單位的列表,用來顯示單位的圖像與名字等縮略信息,該節點下面有一個TempUnitItem的單位模板

Items:顯示功能選項,如“出擊”和”觀察“選項在這個節點下

Pointer:一個用來顯示現在選中的項的框

屬性:

start:這個方法用于啟動并接受一個單位數組來設置這個場景。該方法由上一節介紹的Scene調用,單位數組就是由Scene的create_units方法提供的。

下面來是對于輸入事件的處理

這里面做了兩件事,一是在不同狀態下的切換操作二是根據模式分配輸入事件給不同的方法處理。

然后是對輸入事件的一個攔截控制,因為在“觀察模式”下,Scene的指針是需要接受得到輸入事件來移動與查看場景信息的所以在“觀察模式”不會攔截輸入事件,而不是“觀察模式”時,面板是顯示的,不希望Scene的指針接受到輸入事件來移動哦,所以需要用get_viewport().set_input_as_handled()方法來攔截輸入事件阻止它繼續傳遞。

_btn_list_move:處理Pointer在Items上的移動與點擊,

在這個方法中,“出擊”匹配項會發出了一個"depart_signal"信號,這個信號表示要開始進行戰斗并代表玩家已經挑選好了出戰的成員。這個信號在Scene節點進行連接:

可以看到這個游戲的開始由depart_signal這個信號決定的,這個lambda里面做了一些準備工作,例如關閉挑選界面的UI以及將我們挑選的這些單位的控制權交給玩家(其他沒有挑選的單位都是沒有控制權的)并將這些單位加入UnitManage來進行單位注冊。

_unit_list_move:處理Pointer在單位列表上的移動與點擊

可以看到這兩個方法的邏輯與是大致相同的。

在發出"add_unit_signal"添加信號與"remove_unit_signal"刪除信號時,都會由Scene節點的子節點Deploy處理。這個信號在Scene的_ready方法中進行連接:

Deploy:部署點,部署點是在挑選出戰成員時可供單位部署的位置。

上一節有簡要的概括。現在來詳細看一下Deploy的使用方法。要使用Deploy需要先給它添加任意個有position屬性的節點作為子節點。

它根據子節點來決定可選位的數量與位置。

在制作關卡時,只需要給它添加Sprite節點(其他的也可以)來決定部署點的位置。

不過目前部署點是在運行時決定的,如果需要多次使用Deploy與要在游戲過程中改變Deploy需要對這部分進行調整(后續應該會進行調整)。

Scene將PreparePlan的add_unit_signal與remove_unit_signal信號都交由Deploy進行處理,它們的實現很簡單,就是遍歷positions找到沒有使用的位置就進行設置,或者找到要刪除的unit就進行刪除

在觀察模式下進行單位位置的調整

上面在PreparePlan的_btn_list_move方法中有提到“觀察模式”,在加入觀察模式時,PreparePlan顯示的節點將發生變化,它會隱藏部分面板,并且不再阻止輸入事件的傳遞。這將允許玩家操作Scene的Pointer來操作部署點與查看敵方的棋子信息。

這時Scene將會根據Deploy的顯示狀態來將Pointer點擊事件交給Deploy處理

deploy的pointer_callable方法會在沒有選中unit時嘗試進行選中,在已經選中unit時會嘗試進行位置交換

這一系列的組合的效果:

在調整好位置后,就可以開始戰斗了。

總結

PreparePlan決定出戰單位,Deploy決定單位的位置。PreparePlan與Deploy之間沒有直接聯系,由Scene作為橋梁。這得益于Godot的信號機制。

在創建新關卡時,只需要給Deploy添加擁有位置屬性的子節點即可。而最大出戰人數則需要在PreparePlan的檢查器中調整,需要勾選“子節點可編輯”選項。

下一節我們將介紹一下用于管理單位的UnitManage,看它是如何管理Unit的行動的。

致歉:因為項目的更新隨時都有可能會破壞原有的代碼,您在看到此文時它可能已經不是最新的了,請以現在項目的具體情況為準。歡迎大家給項目提Issues項目地址:/DH-DoveG/dh-srpg-demo

關鍵詞

熱門資訊

主站蜘蛛池模板: 亚洲精品粉嫩小仙女高潮 | 亚洲天堂中文网 | 国产成人精品久久一区二区 | 亚洲日韩国产成网在线观看 | 色综合天天综合网中文 | 99亚洲男女激情在线观看 | av在线你懂的 | 欧美一区二区三区视频 | 爱如潮水8日本免费视频 | 色老头在线一区二区三区 | 成人黄色小说网址 | 午夜激情综合 | 好大好深好猛好爽视频免费 | 一本色道av久久精品 | 亚洲乱码一区二区三区三上悠亚 | 最新版天堂资源中文官网 | 亚洲国产精品久久久久久无码 | 国产又色又爽又黄的视频在线 | 毛片站 | 国产精品九九视频 | 日本国产制服丝袜一区 | 久久综合伊人77777蜜臀 | 天天躁日日躁狠狠躁性色av | 在线观看高清视频免费版 | 99爱国产精品免费高清在线 | 国产大尺度做爰床 | 日韩不卡中文字幕 | 免费观看三级黄色片 | aaa亚洲精品一二三区 | 91精品国自产在线观看 | 麻豆国产原创视频在线播放 | 精品国产一级片 | 亚洲最大无码中文字幕网站 | 国产农村妇女毛片精品久久麻豆 | 日日天干夜夜人人添 | 男人的天堂免费一区二区视频 | 有在线观看的片www网址吗 | 91自啪区| 涩涩视频免费在线观看 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 国产肉体ⅹxxx137大胆 | 美女视频免费一区二区 | 久久国产剧情 | 女性无套免费网站在线看动漫 | 日韩人妻无码一区二区三区久久99 | 一级免费黄视频 | 那里有毛片看 | 67194熟妇人妻欧美日韩 | 在线日韩精品视频 | 激情av一区二区三区 | 日本在线色| 国产91在线免费 | 超碰成人在线播放 | 精品久久久无码中文字幕天天 | 欧美另类交人妖 | 精品国内自产拍在线播放观看 | 久久国产精品网站 | 成人无码小视频在线观看 | 日本亚洲国产一区二区三区 | 精品一区二区三区免费毛片爱 | 成年无码av片在线 | 久久久久99精品成人片三人毛片 | 久久久久国产精品人妻电影 | 欧美99久久精品乱码影视 | 扒开美女内裤狂揉下部 | 亚洲一卡一卡二新区乱码无人区二 | 人人看人人草 | 日韩免费av片 | 狠狠躁夜夜躁人人爽天天天天97 | 任你躁久久久久久妇女av | 国产三级精品三级 | 日日碰狠狠添天天爽 | 午夜dj在线观看免费视频 | 狠狠中文字幕 | 国产精品网红尤物福利在线观看 | 久久久精品久久久 | 欧美videossex另类 | 中文字幕无码他人妻味 | 日韩欧美性一区二区三区 | 欧美婷婷久久五月精品三区 | 精品国产一区二区三区久久久狼 | 私色综合网 | 波多野结衣影院 | zz视频| 日韩亚洲精品国产第二页 | 欧美国产日韩一区二区在线观看 | 麻豆国产尤物av尤物在线观看 | 欧美成人精品一区二区 | 99热在线观看免费精品 | www.四虎成人 | 国产乱码精品一区二区三区爽爽爽 | 国产精品美女久久久亚洲 | 国产成人精品无码片区在线观看 | 国产无套粉嫩白浆内谢网站 | 一级黄色大毛片 | 狠狠久久综合 | 亚洲人成亚洲人成在线观看 | 日韩午夜av| 无码国产片观看 |