天天看點

微信小遊戲開發實戰13:闖關模式的實作

嗨!大家好,我是小螞蟻。

最新版本的精緻1010,新增了一個全新的遊戲模式:闖關模式。今天就跟大家聊一下它的制作思路和大緻的方法。

之是以制作這樣的一個模式,起初的想法是這樣的:原來的遊戲模式一局的時間比較長,以我自己為例,進行一次遊戲的時間至少要在 10 分鐘以上,如果認真仔細一點兒,想玩到幾千分的話,那麼可能需要半個小時以上。很明顯這樣的單次遊戲時長對于一個小遊戲來講有些太長了,但是遊戲模式已經是這樣了,如果想要縮短單次遊戲之間,在現有的模式下隻能通過增加遊戲難度這種方式,但這并不是一種好的方式。

那麼如何能把這樣一個簡單的消除遊戲的單次遊戲時間縮短到幾分鐘之内呢?答案就是建立一個新的遊戲模式:關卡模式。每一個關卡玩家隻需要用幾分鐘的時間即可完成,要麼闖關成功,要麼闖關失敗。

基于上述的原因,我為遊戲新增了闖關模式,原有的遊戲模式被稱作是經典模式,來滿足兩種不同場景下的需求,闖關模式可以在幾分鐘的碎片時間裡玩一下,而經典模式可以用來打發一大段的無聊時間。

闖關模式其實也并不複雜,目前隻增加了障礙玩法。隻是通過修改了一下遊戲目标,兩種遊戲模式就變得迥然不同了。

  • 經典模式下的遊戲目标是盡可能多的進行消除進而獲得更高的分數。
  • 闖關模式下的遊戲目标是盡快的消除遊戲中的障礙進而完成關卡挑戰。

在經典模式中玩家想要獲得更高的分數,需要盡可能長時間的活下去,而闖關模式中,玩家會總是想盡快的搞定這個關卡,去挑戰下一個關卡。

可以看到我們隻需要調整玩家在遊戲中的目标,就可以達到兩種差别非常大的行為結果,是以當你在設計遊戲玩法時,不妨試着将遊戲中的目标切換一下,說不定能帶來一些意外的驚喜。

接下來是闖關模式實作的大緻思路。

闖關模式與經典模式最大的不同在于遊戲結束判斷條件的不同, 在經典模式中,遊戲結束的判斷條件是檢查網格中是否還有位置能夠放置剩餘的任何一個形狀,如果沒有的話則遊戲結束(有關于遊戲結束判斷的具體實作方式,可以參考一下​​這篇文章​​)。在闖關模式中,遊戲結束的判斷條件分為兩種,一種跟經典模式一樣,作為闖關失敗的條件,另一種是需要去判斷遊戲中障礙方塊的數量,如果沒有障礙方塊了,則遊戲過關。

在實作上隻需要使用一個全局變量來記錄障礙方塊的數量,每當消除一個障礙方塊,即将全局障礙方塊的數量減 1,數量為 0 時則遊戲過關。

闖關模式中,工作量最大的地方可能就是關卡設計了,起初我想到的是使用随機的方式去生成關卡,為此我制作了一個遊戲原型進行測試,得出的結論是雖然随機的方式可以讓一個關卡在每次進入時都是不同的,但是由于無法控制障礙塊的出現位置,也就無法控制目前關卡的難度,是以随機生成關卡的方案就被否決了。最終我使用的是手動的設計關卡,每一個關卡都人工設計,以此來保證一個可控的難度曲線,讓關卡的難度可以平緩的上升。

實作闖關模式最大的關鍵點在于資料的設定和展現。即如何将一個關卡中的障礙資料在網格中展示出來。

微信小遊戲開發實戰13:闖關模式的實作

如圖是一個填滿了資料的網格,綠色填充為 1 的方格表示關卡中的障礙塊,白色的填充 0 的方格表示的空位置。我們可以通過這樣設定網格中的資料來進行關卡的設計,如果一個障礙塊需要消除 2 次才能移除,就直接把障礙塊的數字設定為 2 即可。在設計完關卡後,隻需要将網格的資料導出來,然後在遊戲中加載這些關卡資料進行顯示就行了。

一個關卡的資料就像這樣:

0000000000000000000000021120000001001000000100100000010010000001001000000211200000000000000000000000

這是一個長度為 100 的字元串,每一個數字代表的是一個方格中的内容,0 表示空,大于 0 的表示不同的障礙塊,從網格的左下方開始,依次去讀取每一個數字,然後根據數字設定網格的内容就可以将一個關卡展現出來了。

可以看出來這實作起來其實并不複雜,真正複雜的地方在于如何去進行關卡設計,并把設計好的關卡變成這個長度為 100 的字元串,總不至于手動的去一個一個的設定數字吧!

為此,我專門制作了一個關卡編輯器,來處理這個繁瑣的事情。

微信小遊戲開發實戰13:闖關模式的實作

在編輯完關卡後,将所有的資料導出到一個csv檔案中。

微信小遊戲開發實戰13:闖關模式的實作

微信小遊戲制作工具支援導入csv檔案,是以很容易就能夠将關卡的資料導入到遊戲制作工具中,這裡我使用了清單來存儲遊戲的關卡資料。

微信小遊戲開發實戰13:闖關模式的實作

最後,看一下關卡模式下的效果。

微信小遊戲開發實戰13:闖關模式的實作

進入遊戲後,讀取對應關卡的資料,然後根據資料顯示目前關卡的障礙塊。

手動的關卡設計,讓我可以制作很多有意思的造型,例如這樣的:

微信小遊戲開發實戰13:闖關模式的實作
微信小遊戲開發實戰13:闖關模式的實作
微信小遊戲開發實戰13:闖關模式的實作

在制作完關卡模式後,也讓我有了進一步的想法:能否将關卡編輯器做到遊戲裡呢?這樣玩家就可以自己DIY關卡了,甚至可以利用微信的社交屬性,将自己設計的關卡分享給朋友玩。

這将是這個小遊戲下一步的方向。我會繼續進行探索,并與大家分享。

繼續閱讀