100735760 發表於 2015-11-19 14:26:52

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

在上一篇我們進行的是鍵盤方式的移動拼圖,這一篇我們要來講解利用滑鼠點擊來移動拼圖。以原理來說,滑鼠移動拼圖的概念比較簡單。我們使用射線的方式,每次點滑鼠,如果點到拼圖的話,判斷空缺的部分是否在拼圖附近,如果空缺在拼圖附近,就讓拼圖跟空缺的位置進行交換,藉此來達成移動拼圖。 http://d.share.photo.xuite.net/gn00779703/1dbd43a/19699686/1106089044_l.jpg假如,滑鼠點到位置1 的拼圖,這時候空缺如果在 位置2 或 位置4,空缺跟拼圖的位置就交換,拼圖就會移動到 2 或 4,而空缺則會到 1。其他位置的拼圖也以此類推,如果空缺沒有在對應的位置上,則拼圖位置不做變動。在鍵盤移動拼圖的程式碼下方,
加上新的程式碼。http://d.share.photo.xuite.net/gn00779703/1dbd4d0/19699686/1106089450_l.jpgif (Input.GetMouseButtonDown(0)) 是判斷按下滑鼠左鍵,如果想要使用右鍵的話,只要改成 Input.GetMouseButtonDown(1) 就可以囉。Camera.main.ScreenPointToRay(Input.mousePosition) 是將螢幕轉換成射線,我們這邊使用的是滑鼠的座標,也就是說,滑鼠指到的地方就是射線會射中的地方。if (hit.transform.tag == "Puzzle") 一開始的物件設定,有提到要將拼圖的 tag 設定成 Puzzle,就是要在這裡使用,如果滑鼠指到的物件,tag = Puzzle,代表射中拼圖。如果射中拼圖,就進行進一步的判斷,這邊一樣要記得 -1 轉換,以上述程式碼區塊來說,射中 位置1 的拼圖時,判斷 位置2 或 位置4,是否為空缺,因為只判斷 位置2 跟 位置4,所以如果空缺在其他地方的話,則不動作。以此類推,http://d.share.photo.xuite.net/gn00779703/1dbd4b3/19699686/1106087117_l.jpg如果是 位置5 的拼圖,就會有 4 個方向需要判斷,只要依照這個規則把 1 ~ 9 的位置都判定完畢就算完成了。滑鼠移動的方式很簡單吧?下一篇就會是最後的部分囉。

待續....

頁: [1]
查看完整版本: 簡單的 3 × 3 滑塊拼圖 Part. 3