封存課程

敲磚塊

電腦遊戲是遊戲的一種,而遊戲的主要成份有目的、規則、挑戰及互動,這些成分可以統稱為「遊戲性」。遊戲性就是一個遊戲之所以吸引人的原因,遊戲性可以帶來「脫離現實」的解放感,也導致有些人會沈溺於遊戲當中。

目的:在遊戲當中,我們都有明確性的目標。而在平時的工作和生活當中,我們未必有明確的目標,這也是很多人感到生活迷茫的原因。很多人是因為在生活當中沒有目標,所以就到遊戲這個虛擬世界裡去尋找目標。

規則:在遊戲當中,規則是相對固定的,而且你玩得越久,對規則就把握得越好遊戲規則是公平的,只要努力總能獲得相應的回報。而在現實社會當中,卻未必都有公平的規則。

互動:只要玩遊戲就會有相應的收穫,例如:稱號、級別、得分、進度條金幣裝備。人與遊戲的互動,都是可以預期結果的。而現實世界卻不是可以預測的

挑戰:所有遊戲都是自願參與的,當面對困難的挑戰時自己可以隨時退出,就算失敗了還可以重新挑戰,有充分的自主權。而現實生活卻不是這樣,總是有許多迫於無奈的事情,而且常常失敗了就沒機會重來。

以遊戲設計的角度來看,電腦遊戲可以簡單分成三個最基礎部分:遊戲內容contents)、核心玩法core gameplay和遊戲系統game system

遊戲內容是指遊戲的故事背景、環境設定、角色設計、配樂、音效、視覺藝術...等等內容,也就是遊戲所具備的文學與藝術成分。

核心玩法是指人與遊戲互動的方式,不同的玩法也會產生不同的遊戲類型,例如:探索、戰鬥、生產、建設、冒險任務、行商、歷史模擬......等等。

遊戲系統是指為了支持核心玩法所設計出來的遊戲機制,例如:探索時的地圖迷霧系統(沒去過的地方在地圖上只看到霧)、戰鬥時的勝負系統、生產時的環境適性加值系統、建設時的資材消耗系統......等等。

在這個單元我們要設計的是動作遊戲「敲磚塊」,遊戲規則如下:

目的:消除所有的磚塊

規則:控制反射板將鋼珠彈到空中撞擊磚塊,磚塊就會消失,清除所有磚塊就過關,如果沒接到鋼珠,遊戲就結束

互動:鋼珠擊中反射板的位置不同,反彈角度就不同,也可以想成反射板中間彈性最好,兩邊彈性較差,玩家透過練習可以控制鋼珠反彈到自己想要的角度,發展出遊戲技巧。

挑戰:遊戲中鋼珠速度會突然變快或突然變慢,考驗玩家的反應能力。不同關卡也有不同難度設計,例如:磚塊較多,排列較不規則。磚塊本身堅固程度也有不同,有的磚塊要敲兩次才會消失,有的磚塊敲不破。

從遊戲設計觀點來看,「敲磚塊」遊戲的三個基礎部分:

遊戲內容:必須要想一個故事來說明遊戲的背景,同時故事也決定了遊戲場景、提示訊息的樣式。

核心玩法:這是動作遊戲,玩家須擁有三項能力:預測鋼珠的位置、滑鼠控制能力、即時反應能力。

遊戲系統:已經在遊戲規則中討論過了,包含:速度突然變化、特殊磚塊設計、關卡難度增加...等要素。

佈置場景與角色

繪製舞台背景

新增玩家角色

新增球角色

操控與反彈

控制玩家角色

發射鋼珠

碰到玩家時要反彈

碰到玩家就反彈

變更音效

為了讓不同關卡可以設定不同的鋼珠速度,我們需要新增一個「全域變數」(適用於所有角色)「速度」。為了方便測試,可以使用一個獨立積木先將此變數設為 5,點擊執行後,再將該積木移除。

勝負判斷

佈置關卡

Scratch 舞台大小為 480 * 360,下半個螢幕用來發射鋼珠和控制反射板,磚塊放置於螢幕上半部,也就是說有 480 * 180 的空間可以佈置關卡。由於磚塊的大小是 48 * 24,可以佈置一列 10 個磚塊共七列,合計 70 個磚塊,如下圖:

新增磚塊角色

放置磚塊

放置多個磚塊

設計關卡

檢查是否過關

有了全域變數「磚塊數量」後,我們就可用它來判斷玩家是否已經過關,當所有磚塊都被打掉,也就是「磚塊數量」等於 0 時就過關了。請把前面所有程式中的「重複無限次」積木,改成「重複直到磚塊數量 = 0」。使用重複無限次時,程式會永遠反覆執行無法結束,這樣也就沒辦法結束第一關進入第二關,所以修改成「過關時結束」對於設計多關卡的遊戲至關重要。

另外,要更好控制遊戲流程,必須把遊戲從「循序執行」改成「事件驅動」,這樣就可以透過「廣播訊息」決定什麼時候要執行哪一支程式。

底下分別是修改過的「玩家」角色程式和「鋼珠」角色程式。

磚塊的分身程式

被鋼珠擊中的音效

多方向的反彈判斷

建立碰撞偵測遮罩

碰撞偵測

關卡控制

為了讓遊戲能夠控制關卡出現的順序,設想遊戲進行的流程如下:

製作第二關和第三關

新增造型

修改磚塊程式

佈置第二關和第三關

修改磚塊主程式

補充教材:

提示與過關訊息製作

字幕配樂

字幕動畫

開場字幕

試玩與難度調整

試玩之後,如果覺得遊戲太難過關或是太容易過關,可以怎麼調整呢?

萬一鋼珠呈現水平一直線,只能左右來回移動時,怎麼辦?

可以在鋼珠角色中加入角度變化程式,當玩家按下空白鍵時,讓鋼珠稍微向左或向右傾斜。