/snakegame

一个用 Java 实现的贪吃蛇小游戏

Primary LanguageJava

程序说明

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

算法分析

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

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

(二)按键事件

  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 类。