怪獸流浪兒
【遊戲介紹】
下大雨了,出門遠行的阿尼想找間屋子躲雨,屋主比利不但好心地收留他,還提供了他晚餐
但是,阿尼吃著吃著卻覺得昏昏欲睡,清醒後的阿尼發現自己在一間陌生的房間裡,而房門卻壞了無法出去,不知該如何是好的阿尼,想要找到屋主比利,告訴他房門壞了,但在這之前他得先想辦法離開…
【遊戲連結】
【心得】
參加新一代設計展時,以為解謎遊戲在展場會比較不受歡迎,結果有好多人為了玩到好結局(有8種結局,1好2普5壞),花了好多時間玩,讓我覺得又驚又喜!
原來我們的遊戲被很多人喜歡,可以帶給這麼多人歡樂,這就是給我們最大的肯定了😁
【Github】
【筆記】
解謎遊戲最重要的就是謎題和劇本,主要的功能如下:
對話系統
和食物也瘋狂的對話基本上差不多,只是這次改成一句一句地呈現,並且加上一些參數來做狀態判定
如果有需要特別的事情,像是結束、或讓角色講到一半做些特別的表現就可以利用參數的不同進行調整
a. 參數意義:說話的人, 說第幾句話, 下個要說話的人, 下個人說的話是他的第幾句話, 說話內容csv格式mainTalk.csv 1
2
3
4bird,1,yellow,6,唷!
yellow,6,bird,2,唷!
bird,2,yellow,7,你在這裡做啥?
yellow,7,bird,3,噢,我是在各處旅行的途中,因為飛行器壞了,又剛好遇上b. 從主程式持續呼叫talk,直到對話結束
talktalk.cs 1
2
3
4
5
6
7
8
9
10
11
12
13public void nextTalk() { //依據參數來判斷下一次要做什麼事情
if (nextName != "0" && nextParagraph.ToString() != "0")//1.special, 2.normal
{
setSpecialTalkBehavior();//說話 or 說話+做事情
}
else //1.talk end 2.set talk num
{
setTalkBehavior();//儲存data
GameManager.game.Player.Playerstate = Player.PlayerState.idle;
GameManager.game.Player.OnItemEndTalked();
GameManager.game.Setactive(GameManager.game.TalkUI, false);
}
}物品互動
可互動的物品通常只有可以對話或被撿起來的功能,若有其他特例再繼承此類別作變化就可以InteractiveItemInteractiveItem.cs 1
2
3
4
5
6
7public float interactiveDistance; //進入到一定範圍才能和物品互動
public event EventHandler OnItemClicked;//物品被點到時的事件
[ ]
protected bool canPick;
[ ]
protected bool canTalk;
public event EventHandler OnItemTalked;假存檔系統
寫一個假的Singleton Pattern,將類別宣告成一個靜態物件,其他類別就能隨時存取,達到跨場景存檔的效果SaveDataSaveData.cs 1
2
3
4
5
6
7public class SaveData {
public static SaveData _data = new SaveData();//一開始就會自動執行,並在建構元寫好初始化
public SaveData()
{
//初始化
}
}