雖然不難 但是可以說 從頭到尾都是自己想的!開心下面說一下js方面的詳細思路以及遇到的問題,獨立寫下來還是收穫比較大
這裡我的規則就是簡化的版本,也就是隨機出現食物,每次蛇吃到長度就加一。
這個專案還比較簡單,因此事件需要繫結的就三個:
1)按鍵按鈕
給document全域性繫結,這裡採用keyup而不是keydown,這樣可以減少由於按著不鬆而導致的多次觸發事件
2)開始按鈕
開始介面退出,遊戲介面顯示,並且定時器開始工作。
3)重新開始按鈕
結束頁面退出,遊戲介面顯示,並且要初始化遊戲盒子(不然就是接著上次遊戲結束時的蛇繼續了)
基本思想是,設定乙個定時器,速度由乙個全域性變數speed控制,每次根據type(按下的方向鍵)來判斷運動方向,蛇的最後一塊到蛇將要將要到的方向去,實現蛇的移動。
蛇的方向控制 movedirection()
四種情況,分別對應了event.key值為arrowup、arrowdown、arrowleft和arrowright的時候。
這裡利用了乙個全域性標誌量flag
這樣為什麼實現了長度變化?因為,不管flag為什麼值,在蛇頭的前進方向都會增加乙個結點:
這裡相撞要能想到,撞的時候肯定是頭結點撞到其他的結點,因此可以有以下思路:
github原始碼鏈結 前端小專案/貪吃蛇 (19.12.24
C語言小專案之貪吃蛇
設計思路 1 首先需要定義乙個確定大小的範圍,即乙個矩形範圍。需要定義兩個巨集height width分別代表長和寬。2 蛇身設計需要定義乙個一定大小的陣列,由於矩形範圍是height width 所以可以定義陣列大小為 height width即可。3 蛇所吃的食物的設計需要乙個在矩形範圍內隨便出...
QT專案 貪吃蛇
學習qt之後便找了貪吃蛇這個小專案來練習,因為沒有使用ui,因此在繪製方面工程量較大 首先了解貪吃蛇的遊戲邏輯 1.食物隨機出現,蛇頭與蛇尾隨機 完成遊戲初始化 2.蛇碰到食物蛇身變長 3.不按鍵時蛇按照當前方向前進 4.按鍵轉向 5.蛇觸碰到自己和邊緣遊戲結束 第一階段初步完成時,完成情況如下 第...
貪吃蛇專案總結
這是乙個很早之前做的專案,今天突然在資料夾中看到,突然有想去試一下這個小遊戲,就給它執行了一遍,順便回味了一下當初寫這個專案的經歷。在我編寫的遊戲中的蛇是用乙個雙向鍊錶來實現的。為什麼要選擇用雙向鍊錶呢?1.使用乙個帶頭節點和尾節點的雙向鍊錶可以把蛇身體的每乙個結點用乙個鍊錶節點來表示。2.在蛇向前...