Java Game Collection
Java 课程设计项目,使用 Java Swing 实现四个经典小游戏:大鱼吃小鱼、贪食蛇、吞食鱼和超级玛丽。
JavaJava SwingAWTIntelliJ IDEA
Overview
Project Details
Tags
Keywords
Java SwingGame DevelopmentSnakeSuper MarioOOPAnimation
Architecture
经典游戏循环架构:GamePanel 负责游戏逻辑更新和画面渲染,KeyListener 处理用户输入,Timer 控制帧率。面向对象设计分离游戏实体(Player、Enemy、Food)。
项目背景
Java 课程设计要求综合运用 Java 面向对象编程、GUI 开发和多线程技术。选择游戏开发是因为它能直观展示这些技术的实际应用,同时具有趣味性。
核心功能
- 大鱼吃小鱼:控制大鱼吃掉比自己小的鱼,逐渐成长
- 贪食蛇:经典贪食蛇玩法,吃食物增长,撞墙/自身 Game Over
- 吞食鱼:海底捕鱼主题,躲避大鱼,吃掉小鱼
- 超级玛丽:横版卷轴闯关,跳跃、踩怪、吃金币
游戏架构
graph TD A[Game Loop] --> B[Input Handler] A --> C[Update Logic] A --> D[Render] B --> E[Key Events] C --> F[Player Update] C --> G[Enemy AI] C --> H[Collision Detection] D --> I[Draw Background] D --> J[Draw Entities] D --> K[Draw UI/HUD]
项目结构
java-course-design/ ├── 大鱼吃小鱼源码.zip # Big Fish Eat Small Fish(8.2MB) ├── 项目2贪食蛇.zip # Snake Game(1.9MB) ├── 项目3吞食鱼.zip # Feeding Fish(1.0MB) ├── 项目4超级玛丽.zip # Super Mario(21.4MB) └── README.md
技术要点
Java Swing 游戏开发
JPanel+Graphics2D自定义绘图KeyListener键盘事件处理javax.swing.Timer控制游戏帧率
双缓冲消除闪烁
Image offScreen = createImage(width, height);
Graphics gOff = offScreen.getGraphics();
// 在 gOff 上绘制所有内容
g.drawImage(offScreen, 0, 0, null);
碰撞检测
- 矩形碰撞(AABB):
Rectangle.intersects() - 精确碰撞:像素级检测(超级玛丽)
游戏状态机
MENU → PLAYING → PAUSED → GAME_OVER → MENU
每个状态对应不同的输入处理和渲染逻辑。
效果展示
No screenshots yet. Add images to public/screenshots/java-course-design/.
Problems Solved
Challenges & Solutions
01
双缓冲技术解决画面闪烁问题
02
碰撞检测算法的设计与实现
03
游戏状态机管理(开始、暂停、结束)
04
超级玛丽的关卡设计与物理引擎
Reflections
Key Takeaways
掌握了 Java 2D 图形编程和事件处理
理解了游戏循环和帧率控制的核心原理
学会了用面向对象思想设计游戏实体