故事是這樣的...
遊戲的主角是一位登山探險家,名字叫做山姆,他想要攀登世界上的高山,但是登山需要很多的錢。
聽說村子裡有個黑森林,裡頭藏了稀有水晶,價值不菲,於是他展開了這個冒險旅程。
夜晚的黑森林,像是迷宮一般,甚至還有壞天氣來搗亂。
山姆能順利躲避壞天氣,收集全部的水晶嗎?讓我們繼續看下去~
接著,我們來設定一下心中的遊戲企劃書,要開發的項目大致上分為這幾類:
玩家必須操控主角,在迷宮內收集完全部的水晶,並且逃避怪物的追擊,一但被怪物碰到,就會損失一條生命 (初始共有四條生命),當生命值用完時,遊戲結束,計算最高得分。若是收集完全部的水晶,則進到下一關,繼續挑戰更高的得分。玩家如果收集到魔幻水晶,會持續一段時間不會被怪物傷害,在這段期間內可以反擊怪物,將怪物趕回出生點。
以程式面思考:建立 "角色" 類型的 Class
我們可以選擇幫各個角色建立自己的類別 Class,優點是簡單明瞭,缺點是可能會有很多重複的程式碼。
在這遊戲中,會移動的角色就是主角跟怪物,他們都有一些共通的特性,只有某些地方不同,在這邊可以利用類別繼承的優點,將共通的基本屬性及方法寫在共用的"角色"父類別,再幫他們各自的子類別(主角、怪物)加上一些自己專屬的屬性及方法。
以程式面思考:
建立 "收集物" 類型的 Class
取得不同的收集物,會有不同的效果,但是同樣都有自己的座標位置,一樣可以規劃用同個父類別的方式實作,針對有特殊功能的物品再使用繼承父類別的方式建立新的子類別。並偵測當收集物與主角位置重疊時,執行不同的效果。
以程式面思考:
可使用 陣列 Array 先寫出地圖的樣子,並定義牆壁的位置及種類
以程式面思考:
使用 Int 類型的變數紀錄分數
並且將最高得分儲存至 .plist,重新開始遊戲時,可以取得本機歷史最高分
以程式面思考:
使用 AVAudioPlayer 播放 mp3 檔案
以程式面思考:
建立兩個不同場景的檔案 .sks
使用 SpriteKit 的 SKScene 切換場景
將遊戲大綱列出來,可以幫助自己思考遊戲開發的整體脈絡,並將同類型的角色或物件歸類,寫出更彈性、易讀的程式碼。接下來就會開始進入遊戲開發實作的部分,一起探險吧!
參考來源:
遊戲發想參考自:Pac-Man