Canvas drag 實現拖拽拼圖小遊戲

陳被單發表於2016-10-28

博主一直心心念念想做一個小遊戲~  前段時間終於做了一個小遊戲,直到現在才來總結,哈哈~ 以後要勤奮點更新部落格!

實現原理

1.如何切圖?

用之前的方法就是使用photoshop將圖片切成相應大小的圖片。這種做法不靈活,如果要更換圖片的話,就得重新去切圖,很麻煩。

現在是使用canvas,圖片是一整張jpg或者png,把圖片匯入到canvas畫布,然後再呼叫上下文context的getImageData方法,把圖片處理成小圖,這些小圖就作為拼圖的基本單位

2.如何判斷遊戲是否結束?

在剛剛生成的小圖上面新增自定義屬性 , 後期在小圖被移動後再一個個判斷,如果順序是對的,那麼這張大圖就拼接成功, 允許進入下一關;

3.如何實現小圖片隨機排列?

使用math.random

4.拖拽功能實現?

drag知識點補充站:

相容性:IE9+,主流瀏覽器,移動端所有型號暫不支援

一個完整的drag and drop流程通常包含以下幾個步驟:

  1. 設定可拖拽目標.設定屬性draggable="true"實現元素的可拖拽.
  2. 監聽dragstart設定拖拽資料
  3. 設定允許的拖放效果,如copy,move,link
  4. 設定拖放目標,預設情況下瀏覽器阻止所有的拖放操作,所以需要監聽dragenter或者dragover取消瀏覽器預設行為使元素可拖放.
  5. 監聽drop事件執行所需操作

拖拽事件週期中會初始化一個DataTransfer物件,用於儲存拖拽資料和互動資訊.以下是它的屬性和方法.

  • setData(format, data): 以鍵值對設定資料,format通常為資料格式,如text,text/html
  • getData(format): 獲取設定的對應格式資料,format與setData()中一致

例項程式碼:

核心程式碼和思路就是上面這些,其實整個流程走下來還是蠻簡單的

有興趣的可以上我的github  ,歡迎fork~star~

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

任選一種支付方式

Canvas drag 實現拖拽拼圖小遊戲 Canvas drag 實現拖拽拼圖小遊戲

相關文章