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大神指点。
后续继续分析具体细节的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值