用 Java 实现贪吃蛇小游戏

程序说明

这是一个用 Java Awt 实现的贪吃蛇小游戏的完整代码

算法分析

(一)启动一个独立线程根据 direction 重绘面板实现蛇身移动效果,运行过程:

  1. 记录上次头部的坐标到 tempBody 中
  2. 根据方向修改头部坐标
  3. 重绘面板
  4. 判断头部坐标与食物坐标的关系,如果重合则蛇身增加,同时生成新的食物坐标,积分累加
  5. 判断与边缘的关系,如果重叠,则游戏结束
  6. 判断与 body 的关系,如果重叠,则说明碰到自己,游戏结束
  7. 休眠几十毫秒

(二)按键事件

  1. 方向键控制 direction ,只允许 90 度方向转换,不允许 180 度转换方向
  2. A 键控制开始游戏
  3. R 键控制重新开始游戏
  4. Esc 键控制退出游戏

(三)初始化

  1. 头部块
  2. 食物块
  3. 游戏区
  4. 积分区
  5. tempBody 初始值与头部一致

(四)移动后重绘方法

  1. 绘制背景图
  2. 绘制头部方块
  3. 回事食物方块
  4. 绘制得分
  5. 修正将 body 中的数据替换到 tempBody 除了第一个以外的数据处,得到完整的蛇身坐标
  6. 用 tempBody 修正 body 坐标数据,得到最终的数据
  7. 遍历 body 绘制蛇身方块

使用说明

创建一个 Java 工程,将 game 文件夹拷贝到 src 目录下。

执行 GameFrame 类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值