我是Lem0辛块,自學(xué)倡導(dǎo)者畔派,執(zhí)迷于“不務(wù)正業(yè)”,被批評(píng)“旁門(mén)左道”润绵。我注冊(cè)并使用簡(jiǎn)書(shū)线椰,希望能夠記錄一些我記不住的事情,或者與大家一起共享知識(shí)尘盼,共同學(xué)習(xí)憨愉。
往期回顧(點(diǎn)擊鏈接訪問(wèn)):
「從0開(kāi)始:開(kāi)發(fā)自己的游戲[0]」
「從0開(kāi)始:開(kāi)發(fā)自己的游戲[1]」
「從0開(kāi)始:開(kāi)發(fā)自己的游戲[2]」
「從0開(kāi)始:開(kāi)發(fā)自己的游戲[3]」
有兩三天沒(méi)更新教程,因?yàn)闀r(shí)間不允許卿捎。但我依然會(huì)盡量回復(fù)大家的評(píng)論和私信配紫,再次對(duì)各位的鼓勵(lì)和欣賞表示感謝。
在上一期教程中娇澎,我簡(jiǎn)單介紹了快速新建特定事件和游戲事件的概念笨蚁、定義和創(chuàng)建方法。本期教程我將主要講解事件指令中的“條件控制”部分和“流程控制”部分趟庄,制作一個(gè)簡(jiǎn)單的任務(wù)劇情括细。請(qǐng)喜歡本系列教程的朋友們關(guān)注我,避免錯(cuò)過(guò)更新動(dòng)態(tài)戚啥。
如果您沒(méi)有看過(guò)之前的教程奋单,或者在閱讀本文時(shí)發(fā)現(xiàn)自己已經(jīng)記不起以前的一些內(nèi)容,建議您先查看往期的回顧猫十,再繼續(xù)本教程以確保效率览濒。
5呆盖、線性流程 - 學(xué)習(xí)游戲開(kāi)關(guān)和變量與事件的配合
條件控制 指令
如果大家還記得怎樣新建一個(gè)游戲事件,請(qǐng)新建一個(gè)并且選擇一個(gè)合適的圖像使這個(gè)游戲事件成為一個(gè)NPC贷笛。我在這里依舊使用上期教程中的士兵形象应又。我將帶領(lǐng)大家進(jìn)行一個(gè)游戲任務(wù)的制作,玩家控制的角色可以接受任務(wù)并且完成它乏苦。這是標(biāo)準(zhǔn)RPG游戲中的流程株扛。
在右側(cè)的執(zhí)行內(nèi)容中汇荐,已經(jīng)有了一條上期教程中添加的事件指令洞就。若要?jiǎng)h除該條指令,選中按下delete鍵即可掀淘。這里我們選中該條指令旬蟋,按下space鍵,達(dá)到修改該條指令的效果革娄。
注意倾贰,幾乎任何時(shí)候按下space鍵都能夠起到修改作用,例如在事件頁(yè)中按空格鍵可以修改當(dāng)前事件指令的參數(shù)稠腊;在地圖樹(shù)中按空格鍵可以修改當(dāng)前地圖的參數(shù)躁染。
按下空格建修改這條“顯示文字”指令,在彈出的窗口內(nèi)輸入下圖所示的文字架忌,然后確定吞彤,完成修改。
在這條顯示文字的指令中叹放,我使用了轉(zhuǎn)義控制符饰恕。和大多數(shù)編程語(yǔ)言一樣,轉(zhuǎn)義控制符以反斜杠開(kāi)始井仰,通過(guò)不同的規(guī)則使文字顯示內(nèi)容變化埋嵌。比如這條文字顯示指令中,我使用了<code>\c[6] \c[0]</code>兩個(gè)顏色控制符俱恶,轉(zhuǎn)換了“皇家塔洛斯守衛(wèi)軍”文字的顏色為黃色雹嗦。我還使用了<code>\i[192]</code>這個(gè)圖標(biāo)繪制控制符,在對(duì)話窗口的“生命藥劑”文字前繪制了第192號(hào)圖標(biāo)(外形是個(gè)藥瓶的樣子)合是。
在游戲中的預(yù)覽結(jié)果就是下圖這樣了罪。轉(zhuǎn)義控制符被更換為不同的顯示效果。
之后我們?yōu)榱俗屚婕夷軌蜃杂蛇x擇是否接受NPC士兵給出的任務(wù)聪全,我們需要添加一個(gè)“顯示選項(xiàng)”指令泊藕,讓玩家能夠根據(jù)自己的想法選擇回復(fù):
按照上圖設(shè)置完成,確定之后會(huì)發(fā)現(xiàn)事件頁(yè)的執(zhí)行內(nèi)容中出現(xiàn)了顯示選項(xiàng)的指令和兩個(gè)分支难礼。其中娃圆,選擇第二項(xiàng)(也就是“我沒(méi)時(shí)間”)的情形被默認(rèn)為取消玫锋,選擇第一項(xiàng)“我愿意”即為接受任務(wù)的回答。
在玩家選擇接受了任務(wù)之后讼呢,我們需要設(shè)置一個(gè)開(kāi)關(guān)撩鹿。什么是開(kāi)關(guān)呢?開(kāi)關(guān)有ON(開(kāi))和OFF(關(guān))兩個(gè)狀態(tài)吝岭,相當(dāng)于程序設(shè)計(jì)中布爾值(邏輯值)的TRUE和FALSE三痰。我們常常使用開(kāi)關(guān)的狀態(tài)來(lái)設(shè)計(jì)游戲進(jìn)程。
在“我愿意”的選擇分支下窜管,新建一條事件指令,點(diǎn)擊事件指令中的開(kāi)關(guān)操作稚机,打開(kāi)開(kāi)關(guān)操作窗口幕帆。我們?cè)谶@里可以調(diào)整游戲中開(kāi)關(guān)的數(shù)量。注意的是如果大量使用開(kāi)關(guān)可能造成卡頓赖条。在這里我不更改默認(rèn)數(shù)量失乾,直接在0001號(hào)開(kāi)關(guān)的名稱框內(nèi)輸入“玩家接受了任務(wù)∥痴В”
開(kāi)關(guān)的名稱相當(dāng)于注釋碱茁,不會(huì)起任何作用,因此即使是空白也是可以的仿贬。但是為了保證我們不會(huì)混淆這些開(kāi)關(guān)纽竣,我們需要設(shè)置名稱,且名稱需要容易辨認(rèn)茧泪。
這里0001號(hào)開(kāi)關(guān)的用途是:當(dāng)開(kāi)關(guān)打開(kāi)時(shí)表示玩家接受了任務(wù),當(dāng)開(kāi)關(guān)關(guān)閉時(shí)表示玩家拒絕接受任務(wù)队伟。因此我將名稱設(shè)置為“玩家接受了任務(wù)”穴吹。點(diǎn)擊確定,完成開(kāi)關(guān)的操作嗜侮。
注意:為了簡(jiǎn)便港令,我將這個(gè)任務(wù)更改為皇家塔洛斯衛(wèi)隊(duì)只需要一個(gè)恢復(fù)藥劑,特此說(shuō)明
接下來(lái)我們需要新建一個(gè)事件頁(yè)锈颗。點(diǎn)擊游戲事件窗口的新建事件頁(yè)創(chuàng)建一個(gè)新的事件頁(yè):
新的事件頁(yè)(事件頁(yè)2)和舊的事件頁(yè)(事件頁(yè)1)仍屬于同一個(gè)游戲事件顷霹。當(dāng)一個(gè)游戲事件內(nèi)有多個(gè)事件頁(yè)存在的時(shí)候,游戲會(huì)檢測(cè)事件頁(yè)出現(xiàn)的條件宜猜,只執(zhí)行滿足出現(xiàn)條件的事件頁(yè)泼返。如果有多個(gè)事件頁(yè)都符合出現(xiàn)條件, 則按照事件頁(yè)編號(hào)從大到小的順序開(kāi)始姨拥。因而绅喉,這兩個(gè)事件頁(yè)都同屬于在游戲開(kāi)發(fā)中渠鸽,我們往往需要使用多個(gè)事件頁(yè)模擬不同時(shí)期NPC的表現(xiàn)。
在這個(gè)例子中柴罐,事件頁(yè)1的事件指令用于模擬玩家接受任務(wù)前NPC的表現(xiàn)徽缚,事件頁(yè)2的事件指令用于模擬玩家接受任務(wù)后到完成任務(wù)前NPC的表現(xiàn)。也就是說(shuō)只要玩家不接受任務(wù)革屠,則在和NPC對(duì)話時(shí)事件1會(huì)一直執(zhí)行凿试。當(dāng)玩家接受了任務(wù)之后,則事件1不再執(zhí)行似芝,玩家和NPC對(duì)話的時(shí)候執(zhí)行事件2那婉。
在事件2中我們需要設(shè)置事件頁(yè)2的出現(xiàn)條件。事件頁(yè)2必須是在玩家接受任務(wù)之后才能出現(xiàn)的党瓮,所以我們需要將事件頁(yè)2的出現(xiàn)條件設(shè)置為:開(kāi)關(guān)0001:玩家接受了任務(wù) 開(kāi)啟時(shí)详炬。
同時(shí),事件頁(yè)2的圖像也要設(shè)置成和事件頁(yè)1一樣寞奸,即都設(shè)置成士兵的樣子呛谜。否則玩家接受了任務(wù)之后,事件頁(yè)1不再執(zhí)行枪萄,轉(zhuǎn)而執(zhí)行事件頁(yè)2的時(shí)候隐岛,NPC的樣子突然改變,可能會(huì)讓玩家嚇一大跳瓷翻。
在事件頁(yè)2中聚凹,我們?yōu)榱藱z測(cè)玩家是否完成了任務(wù),需要引入一個(gè)條件判斷逻悠。我們雙擊執(zhí)行內(nèi)容處的空白元践,新建一條事件指令,在彈出的事件指令中童谒,我們選擇分支條件:
分支條件窗口中单旁,你需要設(shè)置作為分歧條件的項(xiàng)目。比如這里我選擇的分支條件是玩家是否持有生命藥劑饥伊。如果玩家持有生命藥劑象浑,則視為任務(wù)完成,否則琅豆,視為任務(wù)沒(méi)有完成愉豺。
在判定任務(wù)完成之后茫因,我們需要在玩家持有恢復(fù)藥劑的時(shí)候減去玩家手中的藥劑蚪拦,作為角色交付給NPC的任務(wù)道具。我們?cè)诔钟谢謴?fù)劑的條件下新建一條事件指令,找到增減物品操作驰贷,進(jìn)行如圖設(shè)置:
在沒(méi)有完成任務(wù)的場(chǎng)合盛嘿,我們可以讓NPC說(shuō)一句話提示玩家。設(shè)置完成后括袒,事件頁(yè)2應(yīng)該如下圖所示:
之后我們需要在前幾期教程創(chuàng)建的室內(nèi)地圖中擺放一個(gè)游戲事件次兆,用來(lái)給玩家增加一個(gè)治療藥劑。
創(chuàng)建的游戲事件用來(lái)為玩家增加治療藥劑锹锰。但是增加或減少物品并不會(huì)在游戲中提示芥炭,也就是說(shuō)你對(duì)著桌子按下確定鍵,不會(huì)有一個(gè)窗口彈出老提示你獲得了某某道具恃慧。你需要打開(kāi)背包查看物品列表园蝠。
在創(chuàng)建藥劑事件時(shí),一定要注意將本事件的優(yōu)先級(jí)設(shè)置為與人物同層糕伐。
之后我們創(chuàng)建一個(gè)快速事件砰琢,選擇場(chǎng)所移動(dòng),將移動(dòng)目標(biāo)設(shè)置為室外地圖的房屋門(mén)口良瞧,讓玩家在獲得了藥劑的時(shí)候可以回到室外交付任務(wù)。
確認(rèn)無(wú)誤后褥蚯,我們運(yùn)行游戲進(jìn)行測(cè)試。以下是游戲測(cè)試效果圖:
但到這里還有一些BUG况增≡奘可能在調(diào)試過(guò)程中大家都發(fā)現(xiàn)了一些問(wèn)題,我們需要在下一節(jié)教程的時(shí)候修復(fù)澳骤。
這里我先列出一些存在的錯(cuò)誤:
當(dāng)玩家完成任務(wù)后歧强,如果背包內(nèi)沒(méi)有藥劑,則下次和NPC對(duì)話为肮,依然會(huì)提示“沒(méi)有完成任務(wù)”摊册。
當(dāng)玩家完成任務(wù)后,如果背包內(nèi)還有藥劑颊艳,則下次和NPC對(duì)話時(shí)茅特,任務(wù)會(huì)重復(fù)交付,玩家依然會(huì)被扣除恢復(fù)藥劑棋枕。
在室內(nèi)地圖中白修,玩家可以重復(fù)領(lǐng)取恢復(fù)藥劑。桌子上藥劑這個(gè)游戲事件不會(huì)消失重斑。
...
請(qǐng)大家嘗試?yán)靡呀?jīng)學(xué)習(xí)的開(kāi)關(guān)和事件頁(yè)嘗試解決這些遺留問(wèn)題兵睛。我將在下節(jié)教程進(jìn)行講解。
我由于長(zhǎng)期加班,拖到今天才完成了本篇教程祖很。時(shí)間倉(cāng)促笛丙,如有任何問(wèn)題都可以私信告知,我將盡快回復(fù)突琳。
感謝大家的關(guān)注若债。如您喜歡本系列教程,請(qǐng)關(guān)注我以免錯(cuò)過(guò)更新動(dòng)態(tài)拆融。
如果您是游戲美術(shù)蠢琳,或者有數(shù)位板的美術(shù)從業(yè)人士、學(xué)生等各路大神镜豹,對(duì)“未來(lái)游戲計(jì)劃”感興趣傲须,請(qǐng)私信聯(lián)系我。
我是Lem0趟脂,自學(xué)倡導(dǎo)者泰讽,執(zhí)迷于“不務(wù)正業(yè)”,被批評(píng)“旁門(mén)左道”昔期。與大家分享英語(yǔ)/編程/高效自學(xué)的所思所想已卸。
已授權(quán)“版權(quán)印”進(jìn)行版權(quán)保護(hù)。獲取授權(quán)
<a>TBC 未完待續(xù)</a>