1
設計游戲,首先就要設計界面。首先看一下我設計的一個界面。界面分為左邊的游戲區與右邊的控制區。游戲區包含“得分信息”和貪吃蛇的游戲區,右邊控制區有“開始”“暫停”“停止”按鈕,等級選擇單選框以及游戲排行榜。2
所以我們需要定義swing組件,并在類初始化時初始化這些組件,添加組件。因為后面設計游戲的時候,我們要確切知道游戲區的大小,所以這里設置游戲區固定大小值。本來想用布局來更好的管理,但作者對布局也掌握不夠,所以就先設置固定大小吧。
3
定義我們的游戲。貪吃蛇游戲其實就是包含很多細小網格,然后蛇在網格中移動。蛇由一連串的網格組成,為了視覺效果,蛇身用藍色標記,食物用紅色標記,背景白色。如第一張圖片所示。所以,我們需要定義二維數組,保存網格信息,保存蛇身和食物的位置信息等。初始化時,還需要添加鍵盤事件控制上下左右移動。
4
食物的位置信息是二維的,所以我簡單定義了一個類用來保存二維信息。
5
接著就是實現游戲的功能了。開始,暫停,停止按鈕添加事件控制游戲開始。等級按鈕定義游戲難度等。
6
開始游戲后,我們定義一個定時器。蛇身按照指定的方向移動,方向是通過初始化時添加的鍵盤事件,鍵盤的上下左右按鈕來控制。蛇身是連續的位置信息,保存到隊列中,所以蛇身的移動就是隊首增加一個位置,隊尾減少位置,然后重新繪畫游戲區就可以了。
在蛇身移動時進一步做吃掉食物、撞墻、撞到自己的處理。這是游戲的主要邏輯。
7
最后,游戲結束我們彈出一個對話框提示是否保存游戲得分。我們制作了排行榜信息,只保留前10名的游戲得分。首先定義了一個實現Comparable接口的游戲得分類,按得分高,時間最早來排序。
8
游戲結束時保存得分信息,看是否進入到排行榜中。而之前在初始化排行榜組件時就會加載游戲排行榜信息。
通過保存和讀取排行榜信息,我們也熟悉一下文件讀取操作,還有集合、排序算法的功能。
9
最后編譯運行,結果良好。經驗也只能寫一個大概的設計,貪吃蛇游戲功能實際是比較簡單的,主要就是界面的布局,swing編程等。如果有任何疑問,歡迎大家留言。
總之,沒有一技之長或者經過訓練,還是不要有這個想法了,不切合實際。
并且,游戲做好之后,還需要經過一系列的游戲認證,審核。
在小范圍內可以傳播,但如果沒有通過的話,就不可以在大范圍內傳播。
如果我的回答對你有幫助,點個贊再走唄~