java貪喫蛇遊戲二

一:整個項目工程目錄預覽如下,


1,ui包下爲遊戲界面實現類,爲View層類對象

2,service包下爲核心控制實現類,爲Control層類對象。control包下爲遊戲配置類以及玩家控制類

3,dto包爲遊戲數據實現類。GameDto.class包含Snake(蛇)對象和Food(食物)以及grade、score、map等數據對象


二:結構分析



  • 界面層
  1. 抽象基類UiBase.class包含:protected void drawLine和protected void drawWindow兩個方法,分別用來繪製遊戲區橫線豎線和區域。
  2. UiGame.class繼承UiBase.class並實現遊戲區域繪製和橫豎線的繪製以及snake的繪製。
  3. UiScore.class繼承UiBase.class並實現控制區域繪製和分數、等級繪製。
  4. JPanelGame.class創建UiGame.class和UiScore.class對象並 安裝鼠標和鍵盤監聽事件。
  • 控制層
  1. 核心服務類Coreservice.class:持有數據對象GameDto.class,並根據玩家控制部分和其他線程 部分來修改遊戲數據對象GameDto
  2. private GameDto gameDto 持有遊戲數據對象,下面所有對數據操作函數都是通過this對象所持有的GameDto對象來進行的
  3. private void initSnakeHead()將snake鏈表體放入到二維數組map中去
  4. public void initFood()啓動食物小方塊產生線程
  5. public void move()移動snake的方法,玩家控制部分的響應函數
  6. public void eatFood()移動snake時,喫食物的方法
  7. public boolean isGameOver()遊戲結束判斷之一,snake碰到自己的身體
  • 數據層
  1. 數據層GameDto.class對象持有
  2. private  boolean[][] gameMap;遊戲區域的二維數組
  3. public static  int score = 0;控制區域需要顯示的分數
  4. public static int level = 0;控制區域需要顯示的等級
  5. private Snake snake;鏈表體的snake對象
  6. private boolean start;多線程監控的開始、暫停標誌位
  7. private Food foodEntity;食物Food對象

遊戲結構分析到這裏。由於水平有限,java還沒有入門,所有上述設計理解可能會有問題,煩請java大神指點。
後續繼續分析具體細節的實現。

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