100735760 發表於 2015-11-19 14:27:29

簡單的 3 × 3 滑塊拼圖 Part. 4

拼圖移動的功能完成之後,最後要完成的就是驗證拼圖是否完成。在前一篇的移動拼圖的程式碼後面,接上驗證拼圖的程式碼。http://d.share.photo.xuite.net/gn00779703/1dbd48b/19699686/1106081445_l.jpg使用一個迴圈,去驗證目前的拼圖跟完成的拼圖是否一致,如果一個拼圖正確,就讓數值+1,迴圈完成後,使用 if 判斷數值是否等於 9,如果是,代表九個拼圖位置都正確,讓布林值 Complete 為真。接下來跳出 if (!Complete) 的區塊,在下方加上 else ,這邊要做的,就是 Complete 為真時,要執行的動作,也就是拼圖完成後,讓第九塊拼圖顯示。http://d.share.photo.xuite.net/gn00779703/1dbd43d/19699686/1106080855_l.jpg到目前為止,已經可以算是完成了。
但是,如果你有進行遊戲測試的話,你會發現,不管怎麼拼,都沒辦法把拼圖完成。http://d.share.photo.xuite.net/gn00779703/1dbd422/19699686/1106082364_l.jpg不管拼幾次,最後都會變成像上圖一樣的排列,這是所謂的遊戲BUG,在這種滑塊拼圖的遊戲,在製作中,最重要的步驟在於打亂拼圖,如果打亂的方式有問題,就會造成無法完成的拼圖。所以我們要解決這個問題,就要回到打亂拼圖的步驟。http://d.share.photo.xuite.net/gn00779703/1dbd46d/19699686/1105292167_o.jpg以這個範例來說,打亂拼圖是使用牌交換的方式,一如一開始所說的,打亂的方式有很多種,不管使用什麼方式打亂拼圖,都要記得驗證拼圖是否可以完成。http://d.share.photo.xuite.net/gn00779703/1dbd492/19699686/1106084268_l.jpg修正的方式很簡單,只要把我們用來打亂拼圖的暫存陣列修改一下即可,暫存陣列的內容從 1 2 3 4 5 6 7 8,改成 1 2 3 4 5 6 8 7。這樣在牌交換的過程中,就不會造成 " 無法完成的拼圖 " 這種情況。修正完成之後,可以再多玩幾次進行驗證,確認遊玩沒問題,遊戲就算完成囉!最後,遊戲雖然完成了,
但是我覺得最後拼圖直接出現效果不是很好,所以我想進行一點優化,讓拼圖用浮現的方式來顯示。這時候我們就不能直接控制元件的開關,而是要控制元件的 Renderer,讓圖片的透明度變化。http://d.share.photo.xuite.net/gn00779703/1dbd406/19699686/1106083872_l.jpg首先加上控制透明度所需要的全域變數,接下來,在一開始打亂拼圖的地方,將http://d.share.photo.xuite.net/gn00779703/1dbd49a/19699686/1106084788_l.jpg改成http://d.share.photo.xuite.net/gn00779703/1dbd4cd/19699686/1106085863_l.jpg再到完成遊戲的區塊,將http://d.share.photo.xuite.net/gn00779703/1dbd43d/19699686/1106080855_o.jpg改成http://d.share.photo.xuite.net/gn00779703/1dbd4ca/19699686/1106085092_l.jpg這樣就完成囉。現在只要完成拼圖之後,透明度就會隨著使用者設定的 時間(Duration) 增加,若設定 Duration = 2,就代表透明度會在兩秒的時間由 0 至 100,這樣就可以造成我們想要的浮現第九塊拼圖,到此,這個範例已全部完成囉!
最後附上專案的連結有什麼問題,可以在底下留言,我會盡我所能的解答。
頁: [1]
查看完整版本: 簡單的 3 × 3 滑塊拼圖 Part. 4