1. 沙箱模式封裝圖片載入函數,對外暴露loadImg(imgUrl,Fn)函數,其中imgUrl為圖片地址(對象),Fn為回調函數。2. 創建整個游戲函數,封裝為DrawSnake,單例模式對外暴露DrawSnake() 2.1 原型中創建隨機生成食物函數food,思路為把20(整個游戲以20為一 ...
1. 沙箱模式封裝圖片載入函數,對外暴露loadImg(imgUrl,Fn)函數,其中imgUrl為圖片地址(對象),Fn為回調函數。
2. 創建整個游戲函數,封裝為DrawSnake,單例模式對外暴露DrawSnake()
2.1 原型中創建隨機生成食物函數food,思路為把20(整個游戲以20為一個單位)的倍數放入數組,隨機取出其中一個。
2.2 初始化蛇身
2.3 蛇頭移動(headMove())
2.3.1 每次移動之前獲取當前的蛇頭坐標
2.3.2 重新獲取蛇身節點
2.3.3 若屏幕寬度小於768,則認為是手機端,顯示控制按鈕,否則為鍵盤控制
2.3.4初始化四個方向布爾值,按鈕或鍵盤改變的是布爾值真假,每次只有一個為真
2.3.5若蛇頭碰撞到四周,則over為true;若蛇頭碰到蛇身,則over為true。
2.4 蛇身移動
2.4.1bodyMoveDelete(),未吃到食物,則刪除蛇尾,並把蛇尾添加到蛇頭
2.4.2bodyMoveClone(),吃到食物,則複製蛇頭節點為新節點,修改坐標為原蛇頭坐標,添加到蛇頭,並重新生成食物
2.5 bodyArr()
2.5.1所有蛇身坐標存入數組,用以判斷蛇頭是否撞到蛇身,即蛇頭坐標等於數組其中的一個
2.5.2用蛇身的長度來確定得分
3. 設置游戲難度
通過點擊難度按鈕修改定時器執行時間
鏈接地址( http://www.hsianglee.top/snake/ )