天天看點

微信小遊戲開發實戰9:重新整理形狀

微信小遊戲開發實戰9:重新整理形狀

在1010遊戲中下方每次會出現3個不同的“形狀”,當玩家把3個“形狀”都拖拽到網格中後,就會生成3個新的形狀,如此的循環往複。這一節我們将實作這種不停生成形狀的功能。

開始前我們需要先明确兩個詞語的含義。

#形狀

微信小遊戲開發實戰9:重新整理形狀

如圖,就是形狀,它會位于遊戲的下方,包含很多不同類型的圖形,到目前為止我們一直都是使用的第一個“田字”形狀作為事例,在​​第6節​​中已經講過具體形狀的實作方式,其他的形狀你可以作為練習自行實作。此後,當你看到“形狀”的字眼後,應該知道我指的的是下方的這些圖形。

#形狀槽

微信小遊戲開發實戰9:重新整理形狀

放置這些形狀地方,就像上圖中的紅色的正方形線框就是“形狀槽”,它們的作用在于告訴每個形狀建立時應該位于哪裡,想象一個就像一個一個的插槽,每個插槽都會安放一個形狀。

下面,讓我們動手一步一步的實作這個功能。

微信小遊戲開發實戰9:重新整理形狀

如圖,在遊戲中新增了幾個資源。“形狀管理”,我們會将所有與形狀生成有關的邏輯放在這上面,它和“網格資料管理”一樣,不會出現在遊戲場景中,隻是默默的在背後為我們提供服務。為了便于區分,我将它設定為了橙色。形狀槽-1~3表示3個“形狀槽”,它們的作用隻有一個,告訴形狀應該在哪裡生成。

接着,增加幾個新的全局變量和通知。

微信小遊戲開發實戰9:重新整理形狀

“全局-形狀資料”,用于判斷目前剩餘的形狀數量,當形狀資料變為0時,就意味着我們需要建立新的“形狀”了。

微信小遊戲開發實戰9:重新整理形狀

我們增加了7個新的通知,其中“生成形狀”和“設定形狀”都用于形狀的建立,“形狀數量發生變化”用于在放置形狀後通知“形狀管理”形狀的數量有變化。

下面看一下“形狀管理”的邏輯,選擇“形狀管理”,為其增加如下的邏輯積木。

微信小遊戲開發實戰9:重新整理形狀

遊戲啟動後,預設的生成3個“形狀”,然後每當“形狀數量發生變化”後就檢查一下目前剩餘的形狀數量,如果目前沒有形狀了,就再建立3個新的“形狀”。

接着看一下“容器-1”中的邏輯,選擇“容器-1”,首先為其增加一個“是否配置形狀槽”的局部變量(具體作用下方會做詳細解釋)。

微信小遊戲開發實戰9:重新整理形狀

然後,為其增加如下的積木邏輯。

微信小遊戲開發實戰9:重新整理形狀

如圖,我們為“容器-1”新增了3個接收到“設定形狀”通知的邏輯塊,主要作用就是在形狀被建立後,将形狀放置到對應的形狀槽中。

這裡有一個需要注意的點,我們增加了一個“是否配置形狀槽”的局部變量來辨別目前的形狀是否已經放置在形狀槽内,因為“容器-1”會接收到“設定形狀1”“設定形狀2”“設定形狀3”的3個通知。如果不加辨別的話,這3個塊的邏輯會被依次執行,那麼最後結果就是所有的“形狀”都會被放置在“形狀槽-3”中。為了避免這種情況,是以增加了這個局部變量作為辨別,對于已經放置好了的形狀,就不應該再進行設定形狀處理了。(你可以試着去掉該條件,運作後看看結果如何)

最後,在放置形狀塊中,新增了幾個積木塊。

微信小遊戲開發實戰9:重新整理形狀

在形狀被放置在網格上後,将全局記錄的形狀數量減少1,然後給“形狀管理”發送一個“形狀數量發生變化的”的通知,最後删除目前的形狀。

預覽一下,看看最終的效果。

微信小遊戲開發實戰9:重新整理形狀

如圖,當3個形狀都放置到網格上後,就會重新的生成3個新的形狀,如此循環往複。

總結一下

這一節我們實作了遊戲中形狀的重新整理,增加了一個新的“形狀槽”的概念,即用于安放形狀的插槽。其中我們大量的使用到了通知,通知是遊戲開發中不同物體間進行的通信的最常用的方式,如果你對通知了解的還不是很好,可以去回顧一下之前的文章“​​通知​​​”。

練一下

繼續閱讀