微信小程序實現簡單的2048


  這兩天心血來潮,用微信小程序寫了一個簡單的2048,歡迎各位老鐵圍觀,提出寶貴意見。這里我從0到1贅述一下個人實現流程:

  首先去微信公平台(https://mp.weixin.qq.com/)注冊一個小程序賬號,注意:一個身份證好像只能注冊5個小程序.然后登陸進入后台,進行相應的名稱、頭像等設置。我的如下:

后台設置

  然后在開發設置選項可以查看AppID和AppSecret,做好這些准備工作,就可以打開你的微信開發工具進行編程的奇幻之旅了。打開開發工具,注意最好選擇一個空的目錄,然后粘貼你的AppID,選擇快速啟動就可以了。恭喜你可以運行小程序看默認效果了。

  接下來,清空index.wxml,粘貼上我的代碼(可以在 https://github.com/WangHao1221/mimi2048.git 盪下來,最好送我一顆小星星,謝啦!),在這里說一下,我把app.js做了簡單的修改,用來獲取用戶信息,你也可以在app.json文件修改成你想要的方式,然后是在app.wxss里面加了一個簡單的默認樣式(注意我在wxss里面加的注釋!)。注意:在config.js文件中我加了一句設置:"disableScroll": true,禁止頁面滾動!

  最后是index.wxss和index.js這兩個文件了,核心邏輯在js,這里我簡單分析我的思路:

  1.首先是頭部,獲取頭像昵稱、然后是根據改昵稱,設置最佳分數。

  2.頭部布局問題,自己可以隨意設置,重新開始按鈕先設置上。

  3.也是最重要的,4*4的方格實現(wx:for)。

  4.onLoad里面要做的事情:獲取用戶信息;初始化方格數字;在方格中產生兩個隨機位置並賦值(2/4),這里一定要防止兩次出現的位置相同或者該位置已經有數字!最后是初始化分數(this.setData()方法,既可以修改變量值還可以更改model)。

  5.手勢,根據touch進行方向的判斷(如果是點擊,則不產生新的隨機數)

    這里是核心,多啰嗦一點:觸摸開始的時候獲取起始點,然后是在move的時候判斷是向哪個方向滑動,因為根據不同的方向,入參不一樣,最后是end方法,我這里是把方格用0~15的下標進行標記,每一個數字帶代表方格的位置。比如你向左滑動,那也就是說右邊3列數字要向左合並或者移動,比如下面代碼:0、4、8、12即為最左側方格。

    this.mergeMove(3, 2, 1, 0)
    this.mergeMove(7, 6, 5, 4)
    this.mergeMove(11, 10, 9, 8)
    this.mergeMove(15, 14, 13, 12)

其他方向,以此類推。mergeMove是我封裝的處理移動或者合並的方法,因為無論哪個方向,都會進行相同院里的操作。在mergeMove方法里面,要更新當前分數,判斷當前游戲是否結束(方格滿了,並且不能滑動了!),結束的時候,更新最佳成績。最后附上游戲截圖:

     

 

 

  這里就介紹這么多了,當然這里面會有一些bug,歡迎老鐵們給出意見,還有就是這里沒有服務器,所以肯定總欠缺一些東西,后續我會更新的。歡迎留言評論。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM