WPF製作貪吃蛇小遊戲

初學WPF,需要一個小程序來鍛鍊自己,而貪吃蛇是每一個小白(包括我自己)必學的經典案例,此文就來介紹一下,接近完美的貪吃蛇是如何製作的 . . .
學習源於趙慶明老師的課程(騰訊課堂)

此文將只對遊戲重要的部分進行講解, 完整源碼可在 GitHub 中查看:

GitHub --> Gluttonous-Snake


在這裏插入圖片描述

效果效果如下:

在這裏插入圖片描述

其中這個遊戲是有聲音(吃到東西的聲音,遊戲結束讀取分數的聲音). . .

各種音效可到 愛給網 中下載,完全免費 . . .
比如吃東西的聲音、遊戲結束的聲音(沒有進入高分榜、進入高分榜等)各種各樣的聲音 . . .

讓遊戲變的更加有趣 . . .

.

這個程序的核心部分就是 蛇的移動高分榜語音合成(XML 文件的讀取與存入) . . .

蛇的移動有兩種方式:

  • 真正的移動(每一節蛇身 移動到前一節蛇身的位置)
  • 障眼法(蛇其實沒有移動)

此文將使用障眼法來對蛇的移動進行操作,那麼這個障眼法移動蛇是如何工作的呢?
下面這個圖將解釋這個障眼法原理:
在這裏插入圖片描述
圖中 1, 2, 3 表示的分別是:

  1. 刪除蛇的尾巴
  2. 將蛇頭變成蛇身的顏色
  3. 添加新的蛇頭

我們只需要反覆的進行上面的操作,就可以造成蛇移動的假象 . . .


遊戲核心部分詳解

  1. UI 界面我們採用 Canvas 進行佈局,因爲它可以進行 絕對定位,可以利用元素的座標將元素放在界面的任何地方:
    在這裏插入圖片描述
    對 Canvas進行 佈局,訪問他的名字(GameArea進行操作) . . .

  2. 遊戲地圖部分(那些小格子):
    在這裏插入圖片描述在這裏插入圖片描述

  3. 畫蛇:
    在這裏插入圖片描述
    這個方法調用的比較頻繁,因爲蛇每移動一次,這個方法就要調用一次 . . .
    方法解析:當我們使用障眼法插入一上新蛇頭時,這個蛇頭還沒添加到地圖之中,所以我們在畫蛇的方法之中,需要判斷一下,並且判斷顏色(蛇頭與蛇身不一樣) . . .

  4. 蛇的移動(核心部分):
    在這裏插入圖片描述每一行代碼都加以註釋 . . .

  5. 蛇的其它操作在此處就不寫了,主要就是一些細節上的實現,並不是太複雜 . . .

    比如下面的這些方法實現:

    • 遊戲結束的判斷
    • 蛇吃到食物的判斷
    • 更新遊戲分數
    • 開始新的遊戲
    • 畫出食物
    • 鍵盤按下改變蛇的方向
    • 遊戲的暫停
  6. 高分榜(對 XML文件的操作):
    在這裏插入圖片描述 第一方法是將高分榜中的數據保存到 XML文件之中,Xml文件的 序列化操作,取前五名 . . .
    第二方法是將 XML文件中的數據加載到程序之中,Xml文件的 反序列化操作 . . .
    第三方法是將一個數據添加到高分榜之中,並進行逆序排列 . . .

  7. 語音合成部分:

    在遊戲結束的時候,我們判斷這個分數是否進入了高分榜,如何進入則利用語音合成報出分數:
    在這裏插入圖片描述


.

源碼在 GitHub之中,大家可以自己查閱 ^ _ ^ . . .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章