这是一个用 Java Awt 实现的贪吃蛇小游戏的完整代码。
(一)启动一个独立线程根据 direction 重绘面板实现蛇身移动效果,运行过程:
- 记录上次头部的坐标到 tempBody 中
- 根据方向修改头部坐标
- 重绘面板
- 判断头部坐标与食物坐标的关系,如果重合则蛇身增加,同时生成新的食物坐标,积分累加
- 判断与边缘的关系,如果重叠,则游戏结束
- 判断与 body 的关系,如果重叠,则说明碰到自己,游戏结束
(二)按键事件
- 方向键控制 direction ,只允许 90 度方向转换,不允许 180 度转换方向
- A 键控制开始游戏
- R 键控制重新开始游戏
- Esc 键控制退出游戏
(三)初始化
- 头部块
- 食物块
- 游戏区
- 积分区
- tempBody 初始值与头部一致
(四)移动后重绘方法
- 绘制背景图
- 绘制头部方块
- 回事食物方块
- 绘制得分
- 修正将 body 中的数据替换到 tempBody 除了第一个以外的数据处,得到完整的蛇身坐标
- 用 tempBody 修正 body 坐标数据,得到最终的数据
- 遍历 body 绘制蛇身方块
创建一个 Java 工程,将 game 文件夹拷贝到 src 目录下。
执行 GameFrame 类。