開發Windows貪吃蛇遊戲——(一)前期準備

SertonRY發表於2020-12-20

在開始動手之前

在上一次使用Qt完成了計算器的開發後,好奇心使我想嘗試一下Java的圖形化開發,所以本次專案全程使用 Java 編寫。

專案需求分析

貪吃蛇專案要求實現遊戲的基本功能,例如生成地圖、食物、蛇,能控制蛇的移動,當吃到食物時蛇身增長,當撞牆或撞到蛇身後遊戲結束。再設計遊戲的初始歡迎介面、遊戲介面和結束介面。

功能分析

顯示介面需要JFrame和Jpanel來實現,地圖使用drawline畫出網格,每一格作為一個單位,設定最外層的格子為牆。使用兩個一維陣列存放蛇的x、y座標,陣列長度為格子的數量,確保蛇能足夠長。使用一個全域性變數記錄當前蛇的長度,方便繪圖時畫出正確的蛇。
在做碰撞檢測時,只需要將蛇頭節點的座標和蛇身的座標、食物的座標、牆的座標進行比較即可。
當蛇在移動時,需要將儲存蛇的陣列的每一個元素賦給後一個元素,最後計算首元素,此時最後一個元素的值被丟棄。若吃到食物,則將最後一個元素繼續向後賦值,同時設定蛇的長度加一。

補充

在繪製蛇時,若顏色一致,將導致蛇近距離移動時不易分辨蛇的走向,可以將蛇身變為彩色或漸變色,方便觀察。在計量蛇的長度時,可以使用兩個全域性變數,一個記錄蛇長度的初始值,另一個記錄蛇吃到食物的個數,兩個變數相加即可得到蛇的當前長度,且第一個變數可以根據難度的變化而變化,第二個變數恰好記錄了當前的遊戲分數。
由於本遊戲的畫面是由不變大小的單元格堆疊而成的,故可以考慮增加解析度選項,新增並設定對應的選單和選項。同時可以加入鍵盤快捷鍵的監聽,例如按下R鍵快速重啟遊戲等等。

後續

下一篇地址 開發Windows貪吃蛇遊戲——(二)程式碼實現

相關文章