Skip to content

shaojunying/gluttonous-snake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐍 贪吃蛇游戏 (Gluttonous Snake)

基于 Java Swing 实现的经典贪吃蛇游戏,使用纯 Java 技术栈开发,界面简洁美观,操作流畅。

📋 项目简介

这是一个使用 Java Swing 图形界面库开发的贪吃蛇游戏。游戏包含完整的游戏逻辑,包括蛇的移动、食物生成、碰撞检测、得分统计等功能。项目代码结构清晰,适合 Java 初学者学习和参考。

✨ 游戏特性

  • 🎮 经典游戏玩法:方向键控制蛇的移动方向
  • 🍎 随机食物生成:食物在游戏区域内随机出现
  • 📊 实时得分显示:每吃一个食物得100分
  • 🔄 边界穿越:蛇可以从游戏区域一边穿越到另一边
  • ⏯️ 暂停/继续功能:按空格键暂停或继续游戏
  • 🔄 游戏重新开始:游戏结束后按空格键重新开始
  • 🎨 美观界面:使用自定义图片资源,界面精美

🛠️ 技术栈

  • 开发语言:Java 8+
  • 图形界面:Java Swing
  • 开发工具:支持任何 Java IDE (IntelliJ IDEA、Eclipse 等)
  • 运行环境:JRE 1.8 或更高版本

🎯 游戏操作

  • 方向键:控制蛇的移动方向(上下左右)
  • 空格键:开始游戏、暂停/继续游戏、重新开始游戏
  • 游戏目标:控制蛇吃食物,获得高分,避免撞到自己的身体

🎮 游戏规则

  1. 蛇初始长度为3节,向右移动
  2. 蛇吃到食物后身体增长一节,得分增加100分
  3. 蛇撞到自己的身体游戏结束
  4. 蛇可以穿越游戏边界(从一边出去从另一边进来)
  5. 游戏结束后可以按空格键重新开始

🚀 环境要求

本项目在 JDK 1.8 下测试通过,建议使用 JDK 1.8 或更高版本。

📦 项目结构

gluttonous-snake/
├── src/
│   ├── shao/
│   │   ├── GluttonousSnake.java    # 主程序入口
│   │   └── SnackPanel.java         # 游戏面板核心逻辑
│   └── resources/
│       └── img/                    # 游戏资源图片
│           ├── body.jpg           # 蛇身体图片
│           ├── up.jpg            # 蛇头向上图片
│           ├── down.jpg          # 蛇头向下图片
│           ├── left.jpg          # 蛇头向左图片
│           ├── right.jpg         # 蛇头向右图片
│           ├── food.jpg          # 食物图片
│           └── title.jpg         # 游戏标题图片
├── img/                          # README 展示图片
├── run.sh                        # 快速运行脚本
└── README.md

🔧 运行方法

方法一:命令行运行

假设现在命令行已经位于项目的根目录

  1. 创建 out 目录,该目录存放编译好的 class 文件
mkdir out 
  1. 执行下面的命令将 Java 文件编译并保存到 out 目录下
javac -d out src/**/*.java
  1. 将资源文件拷贝到 out 目录下
cp -R src/resources/ out/resources
  1. 执行如下的命令,运行 class 文件
java -cp out shao.GluttonousSnake

方法二:脚本运行

根目录下的 run.sh 文件包含了上面的命令,可以直接执行该脚本来运行项目

chmod +x run.sh
./run.sh

方法三:IDE 中运行

直接将该项目导入 IDE(如 IntelliJ IDEA、Eclipse)即可运行

📸 运行截图

开始界面

开始界面

运行过程中的截图

运行过程中的截图

游戏结束界面

游戏结束界面

🎓 学习要点

这个项目涵盖了以下 Java 编程知识点:

  • 面向对象编程:类的设计和继承
  • Swing 图形界面:JFrame、JPanel 的使用
  • 事件处理:KeyListener 和 ActionListener 接口
  • 图形绘制:Graphics 类的使用,图像资源加载
  • 定时器:Timer 类实现游戏循环
  • 数组操作:蛇身体坐标的存储和更新
  • 碰撞检测:游戏逻辑判断

🤝 贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目!

📄 许可证

本项目仅供学习交流使用。

About

jpanel实现的贪食蛇小游戏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •