IC編輯器_從入門到精通_第四章|我想成為創造者


3樓貓 發佈時間:2022-02-26 18:09:57 作者:Konux Language

第四章:坑向地圖製作
————————————————————
希望你在看此章節之前,看完了前面的四個章節,否則可能會不太懂接下來的教學。

終於到了咱們的坑向教學,各位興奮嗎?從這一章開始,Konux將帶領大家逐步進入神奇的觸發器世界,當然本章並不涉及觸發器,下章才會教學,但本章會為學習觸發器打牢基礎,所以一定要好好掌握本章的內容,從這一章開始,學習難度可能會直線上升,同時,你的編輯器實力也是如此,是挑戰,也是機遇,希望大家hold的住。
 
以下為本章知識點:
· 坑向製作的思路
· 動畫的製作
· 玩家單位相關技能
· 觸發區域的使用
· 函數編輯器的使用
· 常量、變量與函數
· 單位的中心點
· 常見函數詳解
· 對單位部分屬性的使用
· 物理單位的使用
 
新的開始
啊哈,又是熟悉的界面,又是熟悉的畫風!
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第1張這裡因為Level_2我們當時作為了結束頁,顯然我們需要在第一關和第二關之間插入一關來製作我們的坑向關卡,所以這裡我們將原先的結束頁改名為EndLevel,然後添加一個名為Level_2的關卡
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第2張可以看到Level_2添加在了下面,這並不符合我們關卡的順序(第一關->第二關->結束關),所以可以按住Level_2向上拖動到合適的位置
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第3張好了,我們雙擊第二關,開始我們的坑向製作
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第4張 
坑向製作思想
相信有不少新人在首次製作坑向時,都會露出張三般邪惡的笑容,想把玩家往死裡整,以發洩自己玩坑向時的憤怒,這種行為超級正常,但是它行不通。我們如果是站在玩家對立面的角度來設計一個地圖或者說遊戲,那麼它一定是失敗的!我們製作遊戲的初衷是什麼?遊戲應該是能給人帶來快樂的第九藝術,不管是什麼形式的快樂,總之絕對不是折磨。跳刺,玩家一直死,他有快樂嗎?有,當他過了某個刺型之後,會產生非常大的成就感(雖然這個成就感只適用於有實力的個體),坑向,玩家一直被坑,他快樂嗎?非常快樂,因為那些坑非常有意思,那如果這個坑向做的很無聊而且各種惡意(不是惡趣味),還快樂嗎?快樂個錘子,玩家可以選擇不玩,並給你個踩,這樣你滿腦子的惡意坑不到任何人,相當於你白做了。
 
那麼什麼叫做惡意的坑?比如設置一個磚塊、存檔等無傷害的東西碰到就死且不給出任何提示效果,速度特別快的刺使玩家反應不過來秒死、坑向結合難度高的跳刺、滿屏的碰撞顯示磚塊等等,最直接的方法是去自制關卡的萌新區找坑向地圖,多玩幾個(因為有的萌新做的坑向還可以)你就能感受到了。
 
坑向注重坑,坑一般需要合理的展現,而不是讓玩家啥都沒幹就死了,坑的過程要讓玩家能反應過來是怎麼被坑的,而不是讓玩家去猜。所以做坑向時,應該打開腦洞去想坑型,怎麼離譜怎麼想,並且要站在玩家的角度去思考坑法,將自己帶入進去,想像如果自己是玩家,該怎麼走,該怎麼想,從而針對玩家做出相應的坑型。

 
好了廢話就說到這裡(才不是),我們做坑向的第一步就是做出地形,地形要怎麼樣有創新呢?拿官方教程裡Aikesi做的地形舉例子,咱大致勾畫一下,就長下面這樣
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第5張可以看出這個地形非常的單一,路線就是從下往上蛇形上升,非常簡單,但是往往簡單的地形很難做出有創新的坑(不是不能),所以地形不能太簡單,那麼該怎麼做一個合適的地形呢?超級簡單,這裡給一個字:瞎糊(嗯?這不兩個字嗎)!你自己都不知道你在糊什麼的時候,它就是創新!
那麼首先我們得瞎糊一個玩家路線,路線不要太簡單,不要太複雜,不可交叉(新手階段建議別交叉,高級製作可以),Konux在這裡隨便畫一個,注意路線是橫豎組成的直線
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第6張路線畫好之後,根據路線我們再粗糙的搭建一個大致的地形
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第7張看起來這個地形非常的醜,所以我們需要對其進行一點點精修,加上一點點磚和刺進行修飾,那麼我們的地形就做好了(這裡的磚就是儘量表現的凹凸不平並看上去合理就行)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第8張這樣,我們的地形就粗略的勾畫完成啦!因為是坑向,所以我們不需要考慮地形可不可以跳的上去,因為我們做坑型的時候,有各種辦法能讓玩家過的去,這就需要打開自己的腦洞了。那麼由於我們的教程是偏向於技術實現方面的講解,所以關於如何想出好玩的坑法,就不做細講了,而且可能教程的創意會影響到各位對於坑型的思考,對創新產生約束(Konux你說你是不是又偷懶了? Konux:噓…小聲點,別讓他們聽到了)
如果需要了解坑型的常規套路,可以進入下方我寫的坑向理論的教程鏈接進行閱讀:
https://easydoc.net/s/85829661/USXlrH6u/skih7IXY
 
函數編輯器
好了,接下來就開始講解重點技術環節,在坑向中如果想讓刺能聽我們的命令來做一些事,就需要寫動作了,動作是個啥呢?你可以理解為腳本,你寫好動作後,遊戲就會根據你寫的動作裡的內容而執行相應的一些事情,而動作裡裝的就是一堆的函數(腳本里對應為代碼)。可能這並不易於理解,我們先上手試試就行。
找到觸發區域單位,將它擺出來
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第9張看看它的技能裡有啥
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第10張有[隱藏]和[運行動作]兩個技能,很明顯,第一個技能就是使這個區域隱藏的(看不見但摸得著),而[運行動作]技能就可以用來寫動作,我們點開[運行動作]技能看看
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第11張有個屬性就是動作,其實[運行動作]技能對單位所起的功能就是:當目標單位碰撞到帶有[運行動作]技能的單位時,則執行此技能裡的動作,最大運行次數屬性就表示這個技能可以觸發幾次,比如填2,那麼首次觸發技能後執行完動作,第二次再觸發,就還會執行一遍動作,第三次就不會了,這裡如果填-1,則表示次數為無限次(編輯器裡的很多地方,-1次都可以表示無限次)。
接下來我們雙擊動作屬性,寫一下動作(也叫函數組,因為動作裡裝的就是一堆函數),點擊左上的新建函數,就可以看到以下的東西
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第12張右邊的那一些是對於函數的工具欄,我們從上往下依次標號為1到7
1:新建函數(快捷鍵:C)
2:編輯函數(快捷鍵:E)
3:複製函數(快捷鍵:Ctrl+C)
4:剪切函數(快捷鍵:Ctrl+X)
5:粘貼函數(快捷鍵:Ctrl+V)
6:設置函數的激活狀態(函數是灰色的就表示未激活,此狀態下,函數不執行)( 快捷鍵:A)
7:刪除函數(快捷鍵:Delete)
 
咱上面講了一堆的函數,那麼說到底,啥是函數?是數學裡的函數y = f(x)嗎? 是,也不是!程序裡的函數和數學上的函數不同,但從廣義上來說又有共通之處,函數一旦它們的參數(比如x值)確定,那麼函數就能輸出一個確定的值,在我們的編輯器中也是類似,只要函數的參數確定,那麼函數就能根據你的參數而去做一些特定的功能,比如讓刺往上飛。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第13張好了,我們先著手做出一個函數看看,比如讓刺移動,點擊新建函數,快捷鍵為C
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第14張這就是函數編輯器了,當然了這是新版函數編輯器,操作難度會比舊版函數編輯器高,所以這裡就主要使用新版編輯器進行講解,新版會了,舊版也能會。先介紹一下,可以看到有左中右三欄(上面的不用管),左邊是函數分類欄,就像單位的放置分類,或者是商品架上對商品的分類,這是給函數分類的,便於我們快速尋找到自己想要的函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第15張至於中間一欄就是函數欄了,裡面放置著分類欄對應的當前分類裡的所有函數,就像超市裡的飲品區放置著的所有飲料一樣。而右邊這個佔函數編輯器一半區域的東東,就是函數編輯區,你選擇的函數將在這裡完成參數的編輯。
 
好了,由於我們要對刺做操作,刺是單位,所以就應該選擇的是單位分類裡的相關函數,我們要讓刺干啥?飛?不不,這叫移動,所以可以找到如下的一個函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第16張移動(指定時間、位置)函數,即字面意思,讓某單位以..時間移動到..地方,在函數編輯區裡選擇第一個參數(使…),然後點擊常量(函數和變量後文再提),我們就可以選擇單位了
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第17張這裡需要切換放置層級為單位,然後才可以選擇刺
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第18張選好後,我們對下一個參數進行設置,也就是移動需要的時間,同樣點擊常量,寫好時間,比如這裡寫0.5秒
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第19張最後我們設置最後一個參數,同樣的選擇常量,然後在場景中選擇自己想要的座標,因為我們想讓刺往上飛,所以填如下所示的位置就好
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第20張IC編輯器_從入門到精通_第四章|我想成為創造者 - 第21張好,我們的函數就製作完成了,點擊保存
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第22張用舊版函數編輯器也是差不多的操作,按如下步驟就行
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第23張確定之後,上面的這一行就是我們寫的一個函數(如下圖,這裡函數前面的[單位]表示函數的分類類型,每個函數都有它的類型),點擊確定和保存之後我們拿黑旗測試一下,這裡為了演示方便,所以將觸發區域的隱藏技能刪除,讓它能看得到
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第24張
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第25張成了!當玩家碰到觸發區域時,我們指定的刺就乖乖的按我們的要求飛了上去,現在你們大概能懂函數的意思了吧,它就像一隻聽話的機器狗(這個比喻好怪哦),當你要讓它做啥時,只要給他清晰的要求,那麼它就會按照你的要求去做。
 
那麼或許有人有這樣一個要求,想做一個連環坑,比如讓刺連續移動,就像下圖這樣
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第26張那這太簡單了,我們可以複製我們寫好的這個函數,右鍵或長按複製
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第27張然後粘貼下來,並將下面這個函數的座標改成我們第二段位移的終止座標就好了
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第28張這不就是兩段位移嗎?簡簡單單!我們直接測試看看
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第29張屑!咋會這樣,這刺直接斜著跑了,而且只走了一段!
要解決這個問題,首先我們需要理解動作(函數組)的運行機制
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第30張動作裡的函數是從上往下依次運行的,而且如果不加有等待性質的函數,函數組的運行時間是在1幀以內(你可以理解為一瞬間)。那麼我們來看上面這個函數組,嘗試理解它的意思,首先,你告訴刺要往上移動到(3.2,2.56)座標,它還沒有動呢,接著你又給它說讓它移動到(4.48, 2.56)的位置,這是一瞬間完成的,你趁刺不注意,給它發了兩條相同性質(都是移動)的命令,但是刺只能朝著一個確定的方向移動,由於函數組從上往下依次運行,於是它只執行了你給它發送的最後一條命令,於是刺就斜著走了。那麼怎麼解決這個問題呢?我們只需要在兩個函數之間加上一個[系統]等待函數即可,就是下面這個函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第31張同樣的我們修改好等待的時間,這裡填上0.5秒就可以了,然後保存
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第32張等待函數具有延遲運行其下面的函數的作用,就是函數運行到等待這之後,等待函數就將如同Konux一樣龐大的身軀把路給堵住了,必須得等上指定的時間,才能繼續執行後面的函數。所以上面的函數組的意思就是命令刺在0.5秒內移動到上面,同時等待0.5秒,0.5秒之後,上一個函數正好運行完畢(此時刺運動結束),那麼再執行向右方的那個座標移動的函數就沒有問題了,等待函數在坑向中會非常頻繁的使用,一般的連環坑都是採用等待的方法來做連續的一些動作。
可能細心的讀者會注意到有這樣一個函數,指定速度的移動
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第33張我們上面講的是基於時間的移動,這個是基於速度的,為啥坑向我們不用這個?
這裡先科普一下速度的概念,我們小學一年級在數學課的講臺上,體育老師就曾經教過我們v = s/t,也就是速度等於位移除以時間,在遊戲裡也一樣,比如速度為2,我們就能算出這大概就是每1秒鐘走s = vt(速度乘以時間) = 1*2的距離,大概是2/0.64 = 3.125個格子(網格)。
現在我們來解釋為什麼坑向一般用指定時間的一些函數,而很少選擇指定速度的函數,這兩個函數其實都可以達到同一效果,但是如果我們要加等待呢?等待多少秒合適?如果是以時間為基準的函數,那麼我們不用算就能得到準確的等待時間,如果用速度呢?這個時間需要計算s/v才能得到一個準確的結果,這個s就是起點到終點的距離,要是做坑向每做一個函數就得做一個計算題,那就相當不方便,所以一般來說,我們更習慣使用指定時間的函數。
 
好了,以上就是函數編輯器最基本的用法,接下來將以問答的方式來邊問邊學
 
 
問中求進
Q:咱看到函數里有些帶偏移的函數,偏移是啥意思?
A:改變分為絕對改變和相對改變,大部分函數的參數是絕對改變,即有一個確定的參考值,而偏移就指的是以自身的參數為標準的相對改變。打個比方,張三上次考試考了100分,這次考試考了90分,那麼這次考試的絕對分數就是90分,而他的分數偏移就是-10分。偏移就是以原本的參數做為基準。比如座標偏移(如下)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第34張如果是偏移(-0.64,-0.64),那麼這個座標的絕對位置就是白刺目前的位置的往左下方向一格的座標位置,由下圖中就可計算得到絕對座標為(6.4-0.64, 3.84-0.64) = (5.76, 3.2)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第35張 
Q:能讓玩家不能控制嗎,又如何解除控制?
A:一般需要讓玩家不能操作的,就要使用[暫停]函數,就是下面這個,暫停函數能夠暫停單位上大部分技能的運行。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第36張什麼?找不到這個函數?不慌,咱們只需要在動作編輯器的搜索框裡寫下函數的名字(這裡就是暫停,注意不用寫函數分類)就能找到了,以後如果不知道函數在哪,可以直接搜索!
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第37張那麼找到了這個函數之後,它給了個1個參數讓我們選暫停的目標,我們這裡要暫停玩家的操作,所以就需要暫停主機玩家單位,主機玩家單位就是玩家控制著的單位(比如散人、kid),但是我們不能選擇常量,因為你會發現根本沒有,在場景裡沒有放置人物單位,那麼這該怎麼選呢?我們就得需要點函數了
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第38張在函數里,可以找到單位分類裡的主機玩家單位
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第39張然後點擊保存即可
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第40張這樣我們就能做出使玩家不能控制的效果
但我們要研究問題的本質,為什麼暫停主機玩家單位就能讓玩家控制不了角色呢?暫停函數的功能是?暫停單位的技能,那麼想必事情都歸結在了主機玩家單位的技能上,我們打開數據編輯器,看看主機玩家單位
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第41張玩家控制的單位(也就是玩家角色)默認為散人,如果你需要使用別的角色,比如Kid(可以發射子彈),就需要在遊戲屬性裡進行設置
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第42張咳咳!扯遠了,我們看看散人單位的技能:玩家控制、物品控制、玩家重生、玩家交互
單位 == 屬性 + 技能(再次提醒)
玩家能夠控制角色,就是因為玩家單位有[玩家控制]技能
玩家能使用物品(比如槍),就是因為玩家單位有[物品控制]技能
玩家能重生,就是因為玩家單位有[玩家重生]技能
玩家能存檔,能用傳送門傳送,就是因為玩家單位有[玩家交互]技能
只要把其中的一個技能給刪了,那麼玩家就會失去這個技能所對應的功能,但是強烈建議新手不要這麼幹(特別是[玩家重生]技能),這種操作需要有一定的經驗了才能駕馭,否則相當容易出bug。
在這些技能裡有些屬性,各位可以根據需要進行設置,比如[玩家控制]技能,如果需要玩家空中只能有一段跳,就可以設置空中最大跳躍次數為1(默認值為-1,表示無限次,但因為最大跳躍次數為2,所以空中最大跳躍次數相當於2)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第43張同時還有對玩家的重力比例的設置,如果想讓玩家反重力,就直接設置這個為-1即可,雙倍重力就填2
還有移動速度,如果想讓玩家按左鍵,角色朝右走,按右鍵,角色朝左走,就可以直接設置移動速度為-3,表示玩家的速度反向
 
再看看[物品控制]技能,若想讓玩家一開局就有某種物品,可以設置初始物品,如下圖中的設置攝像頭模式物品,在跳刺地圖中非常常用
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第44張好了,大概這些就是玩家單位的技能,所以你也應該明白為啥暫停主機玩家單位能夠讓玩家不能控制,因為這個函數把玩家身上的這四個技能全部禁用了,導致玩家不能移動、跳躍、復活、交互和使用物品!
那麼要恢復玩家就很簡單了,和暫停玩家一樣的操作,只需要使用[單位]-恢複函數即可
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第45張 
Q:還有哪些移動單位的函數,它們有什麼區別
A:大概下面這些函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第46張移動(立即)函數就是讓單位瞬間到達某個位置,相當於閃現,關於偏移的概念上面介紹過了,所以這裡不再介紹
持續移動(指定速度、角度)函數就是字面意思,使單位從自身的位置開始,朝某個角度進行持續的移動,當然這個函數內也可以設置移動的距離,而角度的概念我們在第一章就解釋過,上左下右依次為0°、90°、180°和270°
 
Q:如何讓單位放大或縮小
A:單位大小的變化我們通過縮放操作來實現,可以使用如下函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第47張縮放(指定時間、固定大小)函數經常用到,我們看看函數的參數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第48張有三個參數,關於前兩行參數的用法,和移動函數一樣,這裡就不細講了,看看第三個參數,縮放到多少大小,這裡的大小指的是你想要讓單位最終縮放到多大,我們都知道默認網格的大小是0.64的邊長,一般的普通單位也是佔據一格的大小,所以這些單位的大小就是(0.64,0.64),比如我們要縮放成2*3大小,如下圖,那麼我們就需要縮放到(2*0.64,3*0.64)=(1.28,1.92)大小。但是要注意,這個是相對於單位的向量,所以假如單位是橫向的,你需要以單位的方向來確定大小,而不是以世界座標來確定,比如如下兩圖中的刺,它們的縮放都是2*3的大小(不是左邊2*3,右邊3*2)。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第49張 IC編輯器_從入門到精通_第四章|我想成為創造者 - 第50張聽起來很簡單?是嗎?
接下來我們來試試,我們想讓刺從左圖縮放成右圖所示的樣子
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第51張 -> IC編輯器_從入門到精通_第四章|我想成為創造者 - 第52張縮放後的大小就是(0.64*1,0.64*4) = (0.64,2.56),超級簡單,注意這裡是手動填寫,不要去場景中選擇座標
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第53張好了我們看看效果(右邊的磚塊是為了方便數格子)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第54張屑,這刺都陷地裡去了!大翻車!不過需要注意的是,它確實縮放到了指定的大小,只不過是陷地裡去了而已,那麼為什麼會出現這情況呢?其實單位的縮放是以中心點為定點進行的,而單位默認的中心點就是(0,0),是單位的幾何中心,中心點的比例分佈如下圖所示。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第55張因為默認中心點為(0,0),所以我們會發現單位在縮放的時候,刺的幾何中心是不變的
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第56張而單位的座標,其實就是單位的中心點的座標。這下知道為什麼單位的座標位於單位的中心了吧!所以如果我們改一下中心點,那麼單位的座標就不是在單位的幾何中心了。

對於想實現以上的效果,我們有兩種方法:
第一種:縮放同步移動(推薦)
既然刺的縮放時中心點不動導致沒能實現這個效果,那麼我們只要刺在縮放的同時把它的座標(中心點)同步移動到縮放後的正確位置就可以了!就像下面這樣,注意兩個函數執行的時間必須相同才能實現同步
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第57張其中(3.2,2.24)座標的位置如下圖上面第一個紅點所示(這是刺在縮放之後的中心點位置)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第58張這是咱們在孃胎裡就學過的加法,計算一下應該非常簡單
第二種:改變中心點(不推薦)
既然中心點不變,那麼我們直接把刺的中心點設置為最下面,也可以實現朝一個方向放縮,如下圖設置刺的屬性
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第59張這樣就可以了,有人要問了,為啥不推薦呢?這玩意這麼簡單,而且一勞永逸!首先就是這種方法改變了單位的座標,會導致移動函數非常難以設置,其次,這種方法非常不靈活,一旦我們不朝上,而需要朝下縮放,就需要改中心點為(0,1),這是很不方便的,其只適用於單純的只做一種縮放運動的單位,比如自制血條(其實就是素材為純紅色的被拉長的磚塊),若設置中心點為(-1,0),就能很方便的從右向左縮放血條。
 
Q:如何讓單位旋轉
A:旋轉單位也有相關的函數,如下
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第60張先來看看旋轉(立即、固定角度),其就表示使單位瞬間旋轉到某一角度,關於角度的概念在前面介紹過了,比如我們需要將刺旋轉到朝左的方向,那麼就直接設置旋轉到90°即可,
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第61張上圖中為逆時針方向的表示,順時針方向的表示就是將0、45、90 … 270、315改成-360、-315、-270 … -90、-45。
相信旋轉偏移的概念你們應該能理解,就是逆時針偏移為正數,順時針偏移為負數,如下
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第62張好了,接下來的給定時間進行的旋轉我們主要使用旋轉偏移,而不選擇使用固定角度的旋轉,所以一定要掌握好角度偏移的概念以及計算,那麼為啥不使用固定角度的旋轉呢?因為如下這兩個函數有些bug,目前還不太好用。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第63張我們主要使用旋轉(指定時間、偏移大小)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第64張旋轉偏移在上面已經介紹過了,如果想往逆時針轉動就填入正數偏移角度,順時針當然就需要填入負數偏移角度。
那麼咱們做個小小的綜合練習,咱們想讓一堆的刺做如下的運動
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第65張第一步,讓這一排的刺如圖所示整體旋轉,第二步整體向右移動。
有同學就要問了,咱們只教瞭如何讓刺自轉,沒教如何讓刺繞某點旋轉呀,你這不是欺負老實人嗎???嗯?
誒!真的沒教嗎?回憶一下,我們上一章教過旋轉節點的用法,是用指向使單位綁定節點,而節點又在自轉,所以單位可以繞節點旋轉,節點能旋轉是因為它用了一個自動旋轉的技能,這裡我們如果換成函數控制的旋轉,不也一樣可以嗎?
好的,我們直接開始操作,先將其它的單位都指向這個位於旋轉中心座標的刺(為了展示指向,所以把刺移了位置)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第66張現在我們只需要旋轉最右邊的刺,使它進行正確的旋轉就行
很顯然右側的刺需要朝順時針方向旋轉90°,所以偏移就是-90,咱們直接這樣寫
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第67張然後接下來我們需要使這些刺移動到右邊,這太簡單了,我們給四個刺都寫一個移動函數就行了,但是注意這是連環的動作,所以需要在旋轉結束後才能移動,加上等待0.2秒
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第68張我們測試一下
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第69張 額,這是咋回事?是不是遊戲出bug了?旋轉沒有問題,但移動確出了大問題,除了最底下這個刺是正確執行了我們的函數,上面三個都沒有走到正確的位置。不妨你想一想,這個移動函數真的需要這麼用嗎?如果咱們有100個單位需要移動,你還要一個個的設置嗎?那寫這玩意也太低效且無聊了!注意指向的特性是子單位可以跟隨父單位同步進行移動、旋轉、縮放,所以這裡只需要移動這群單位的父單位即可,也就是最下方的這個刺,我們把對其他的刺的移動的函數給去掉,可以按住<Ctrl>鍵對函數進行多選(手機端在動作編輯器的右下角也有),然後統一按<Delete>鍵刪除。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第70張再測試一遍就會發現成功了。那麼為什麼不能對子單位進行移動、旋轉和縮放呢?因為它們是跟隨父單位進行這些操作的,如果同時有兩個人告訴刺該怎麼做,很顯然就會出現混亂,那如果我們需要對某個子單位操作怎麼辦?可以使用單位類函數中的父單位相關函數來解決這個問題。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第71張這兩個函數就分別等同於指向和取消指向。
 
Q:如何讓單位顯示或消失
A:很簡單,有設置顯示狀態的函數,在單位類函數里
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第72張設置為否表示隱藏,是則表示顯示,這裡的顯示狀態和單位屬性裡的顯示狀態是相同的,這裡的隱藏,是指看不見、摸不著(注意[隱藏]技能是看不見、摸得著,別搞混了)。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第73張 
Q:如何在遊戲運行時創建和刪除單位
A:創建和刪除單位當然是要使用單位類的函數啦,很快啊,咱就找到了如下函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第74張相當簡單明瞭,先看創建函數,有兩個參數,創建一個…在…座標
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第75張注意哦,這裡的第一個參數其實並不是單位,而是單位數據,你可以理解成單位數據就像工廠裡的圖紙,而單位就是用圖紙造出的零件,每個單位都是不同的,比如兩個刺就是不同的單位,但它們同屬一種單位數據。拿人舉例子,世界上不會存在相同的人,比如世界上只有一個Konux,那麼創造一個人的時候,我們一般都是造人,而不是會說造Konux,因為前者屬於人類,而後者屬於人類中的個體。
好了,我們點擊常量,然後選擇想要創造的單位數據(注意到選項卡上面有個大大的“對象”,啊這,此對象非彼對象,這裡的對象你就可以理解為是單位數據,而通過單位數據造出單位的過程,專業的說法叫做“實例化對象”,這是編程中的概念,無需瞭解)。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第76張接著設置想要的座標,就可以創造出一個單位了。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第77張 
刪除單位也是同理,只不過刪除的是單位,而不是單位數據,至於為啥,這裡應該就不用解釋了。後面還有一個刪除(指定時間)其實就是起延時刪除的作用,非常簡單,請自行嘗試就可。需要說明,設置單位刪除和設置單位的顯示狀態為否是不同的,刪除是真正的把單位給刪掉了,而設置顯示狀態為否時,單位還在,只是不顯示而已。
 
Q:你講了這麼半天,那麼函數編輯器裡的常量、變量和函數到底是個啥?
A:這裡是個超級重點,需要特別注意。
先解釋常量,常量就是一個確定的量,比如放置在場景上的單位,它們都是確定的,你可以去選擇的,在數值上,比如1、2、3、1.114514、(0.64,0.64)等等都屬於常量,你可以準確的知道這個量的值,它們不會變動。
而變量就是會變動的量,也可以說是不確定的量,比如主機玩家單位,可能是散人單位,可能是Kid單位,也可能是其他的單位,它就是個變量,再比如用函數創建的單位,你從場景中選不到,這也是變量,因為創建的單位可能有各種情況,就像每個人都不同,再比如數學上的函數y=f(x),其中x就是一個自變量,x的值不確定。
函數的概念想必你們已經懂了不少,咱們上面介紹了很多的函數,函數有輸入參數(也可以無參數)和輸出,函數的參數可以使用常量、變量和函數,函數可以以函數作為參數(實質上是以函數的輸出作為參數),一級函數(主函數)的輸出是用於實現功能,而作為主函數的參數的函數的輸出,實際上就是變量,所以這就是為什麼舊版函數編輯器裡只有常量和變量。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第78張進一步,我們可以將一個函數的結構圖畫出來
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第79張主函數負責實現功能,而一系列的二級函數負責將輸出的變量直接或間接傳給主函數
如下面的簡單函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第80張其中[暫停]就是主函數,而[主機玩家單位]函數就是負責獲取到主機玩家單位,並把輸出(也就是單位)作為[暫停]函數的參數。
 
Q:咱會用函數創建單位了,但是如何控制這個單位進行移動、縮放和旋轉?
A: 用函數創建的單位屬於什麼?上面講過了,屬於變量,變量有兩種獲取途徑,一是二級函數的輸出,另一個就是直接用變量,而變量我們現在沒講怎麼使用,所以只有函數一個選擇。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第81張IC編輯器_從入門到精通_第四章|我想成為創造者 - 第82張可以在左上角看到有個“返回值-單位”即表示當前函數的輸出類型,保存
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第83張因為剛剛創建了單位之後就執行了下面的移動函數,所以獲取到的最後創建的單位就肯定是上面剛剛創建的單位,這樣就能操控這個最後創建的單位了,但是這種方法面臨一個問題
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第84張比如中間加上等待,後面再獲取最後創建的單位就萬萬不可了,因為你根本無法知道等待的這段時間內有沒有新的單位被創建,如果有,那麼就不會選擇到上面創建的單位,即使你只等待0.01秒都不允許這麼幹,這種做法是非常不安全的。
所以最後創建的單位的獲取函數一定要跟在創建單位的後面,否則就容易張冠李戴了。
那麼如果我們非得要等待呢?等待之後我還想操控這個單位咋辦?這個時候就得使用變量,變量簡單來說就是給數據(單位、座標、整數、實數(小數)等等)取名,比如咱令某個新創建的單位叫張三,那麼以後我叫張三時,就是叫的這個單位,就像給單位起外號一樣,至於為啥是外號呢,因為可以對同一個數據起不同的名,比如咱又叫張三為王二麻子,那麼以後不管叫哪一個名字,都是指的這個單位,很顯然的,你不能把兩個單位都叫做王二麻子(變量不能重名),不然你叫來的單位就可能是你最後叫王二麻子的那個單位(變量重名則後面的數據會覆蓋前面的數據),因為時間短記性好。
我們看看設置變量的函數。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第85張變量的其他函數此教程不做介紹,因為此為新手教程,其他的變量可能會比較難以理解。
變量有三種,全局變量,局部變量和單位變量
全局變量就是全局的(廢話),比如我們有兩個觸發區域,那麼第一個區域設置了一個整數變量為1919810,那麼第二個區域也能接收到這個變量的值
而局部變量就是局部的,只能在設置這個變量的這個地兒用,其他地方都不認,就像你們班同學認識你,而其他班同學就不認識你一樣的道理,但是由於局部變量不好用,如果使用不當就容易出bug,所以建議新手可以不使用局部變量
單位變量就是一種只能在同一個單位上使用的變量,你可以理解為單位的附加屬性,或者說是掛在單位上的局部變量。
我們這裡只講全局變量(因為最常用),如果對其他的變量感興趣的可以去查看官方文檔裡的變量教程:
https://easydoc.net/s/85829661/USXlrH6u/N2QX5DlZ
 
當單位創建時,我們立即在下面寫上變量,給單位起一外號
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第86張如圖所示,有三行參數,第一行寫變量的類型,因為我們是給單位起外號,所以這裡填單位,如果是給整數起外號,變量的類型就需要改為整數。第二行就填你想給這個變量取的外號,這裡咱們填張三,最後一個參數就填我們變量給誰起外號,這裡當然是最後創建的單位!
那麼以後我們再需要控制這個單位時,就直接喊外號就好了!
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第87張IC編輯器_從入門到精通_第四章|我想成為創造者 - 第88張然後保存
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第89張這樣就可以了,不管中間有多少等待,或者不管在哪裡,都能獲取到這個單位。
 
Q:咱這是做坑向來著,咋讓機關觸發之後,玩家重生後,機關還原?
A:簡單,在遊戲屬性裡,加載模式中把死亡重置物品選項打開
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第90張Q:我想製作那種坑向中的爆炸動畫該咋做?
A:動畫的製作可以參考官方文檔:
https://easydoc.net/s/85829661/USXlrH6u/fVKrYLhk
需要注意的是,動畫的名字是Idle(默認),否則動畫不播放
 
Q:玩家有皮膚,但是我想讓玩家玩我圖時,用我規定的皮膚咋辦?
A:在遊戲屬性裡,將禁止自定義皮膚改為是
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第91張然後找到你的圖的角色單位,默認為散人,然後改它的動畫路徑
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第92張 
Q:我想重複某個操作,比如想讓單位一直髮射子彈咋做?
A:這裡需要用到[系統]-[內部計時器]函數,咱們來了解一下
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第93張內部計時器函數可以將一些函數按照一定的時間間隔重複運行,兩個參數,上面填重複運行的間隔時間(時間是實數),第二個參數填運行次數(填整數,-1表示無限次),這裡比如每0.1秒運行一次,次數為無限次。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第94張計時器的初始動作只在計時器函數初始時運行一次,一般來說不需要用到
我們在計時器到期動作裡寫上這樣一些東西就好了
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第95張首先創建一個子彈在單位(這裡選擇一個刺)的座標的位置,然後令最後創建的單位向上移動,並且規定其5秒之後刪除掉。為啥要刪除呢?因為單位的存在會耗費機器的性能,如果同時存在的單位過多,就會引起卡頓,所以就需要定時清除掉這些已經沒必要用到的單位以減少卡頓,耐久的彈幕也同樣要這樣做來減少卡頓。
可能這裡的第一個函數比較難設置,因為它用到了三層函數,下面給出方法
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第96張IC編輯器_從入門到精通_第四章|我想成為創造者 - 第97張注意左上角的返回類型為二維向量,實際上可以理解為座標,二維向量是標準的說法
 
Q:別人觸發坑時有聲音,是怎麼弄的?
A:其實很簡單,有播放音效的函數,直接用就好了
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第98張 
Q:我使用了死亡重置物品之後,為啥重生後機關還可以動?如何解決?
A:這確實是個很令人頭大的問題,因為死亡重置其實是重置的單位,但並不會重置動作,所以在動作還沒執行完畢的時候復活,就會出現這種情況,這是由於等待或者計時器延遲了函數的運行造成的問題,所以我們需要在延時操作(比如等待函數)的後面,加上如下所示的東西就可以了。
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第99張介紹一下主要用到的函數,名字太長就不念了,咱們一般叫它條件分支函數(俗名:if函數),此函數無參數,創建出來即可
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第100張然後會看到有條件、Then動作和Else動作三個東西,此函數的意思是,若條件滿足,則運行Then裡的動作,若不滿足,則運行Else裡的動作,起到一個判斷的功能。

這是大家第一次接觸條件函數,所以詳細的操作步驟如下,點擊條件以添加函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第101張(注意左上角的返回值為布爾,布爾值就只有兩種,真(True)和假(False),此值就是條件函數的返回值)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第102張條件設置完畢之後,只需要在Then動作里加上如下的函數就可,同樣的是無參函數
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第103張好了,我們可以把這個條件分支函數複製粘貼到所有等待函數的後面即可
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第104張 
Q:咱想做一個單位,使它可以受重力影響,並且剛創建時,往上拋動之後下落,能整
A:當然能!要使單位能受到重力,那麼就需要單位有物理屬性,所以就需要把單位設置為物理單位類型(這裡新造了一個單位數據,名為“重力牆”)
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第105張設置好之後還需要給它一個重力,這裡我們在剛體數據中找到重力,設置為1
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第106張這樣,這個單位就能有重力了!
接著,我們可以使用設置速率函數(此函數只能用於物理單位)以給單位一個初速度,但是由於需要這個單位一創建就給它一個往上的速率,所以咱得寫在[自定義技能(初始)]技能裡,我們給這個牆加上這個技能
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第107張此技能會在單位剛剛創建(即剛出生)時運行,我們在技能的初始運行動作裡寫如下動作
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第108張其中自身單位函數可以在[單位]類函數中找到,速率有兩個值,左邊為x軸向的速率,右邊為y軸向的力,這裡只是向上拋,所以直接在y軸上設置一個正數的速率即可。
將這個單位放置在場景中,我們運行一下就會發現,這個單位只下落,而一開始沒有上拋,說明我們的函數沒有起效,這就需要在我們在技能的動作裡的第一條寫上:等待0.01秒
IC編輯器_從入門到精通_第四章|我想成為創造者 - 第109張這樣就能運行了!不過這是為啥呢?這裡是因為當單位在初始化(剛創建)時,自定義技能(初始)先運行了,但此時這個單位還沒有加載出物理屬性,所以此函數不生效,故我們需要等待0.01秒,讓單位的物理屬性給加載出來,再運行設置速率的函數。
 
好了以上就是本章的全部內容了,內容非常的多,也非常的精彩,感謝收看!希望在通過以上教程的學習後,你們能做出讓自己滿意的作品!

編輯器新手入門交流與討論可加入官方二群,群號:979717879

© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com