大鱼吃小鱼——java课程设计小游戏开发
本游戏是一个基于 Java 的二维游戏,玩家控制一条鱼在海洋环境中生存,通过吃掉敌方小鱼来获得分数并提升等级。游戏包含了多个关卡和敌人类型,具有简单的碰撞检测和游戏状态管理。
(因为手头上找不到合适的游戏素材,所以都是拿现有的东西拼凑的,内容可替换)
- 开发工具:Vscode
- 编程语言:Java
- 主要库:
javax.swing:用于创建图形用户界面java.awt:用于绘图和图形处理java.util:用于数据结构和集合
游戏窗口
- 类:
GameWin.java - 作用:设置游戏窗口的大小、标题、背景颜色,并初始化游戏状态。
- 关键方法:
launch():设置窗口属性,添加鼠标和键盘事件监听器,并启动游戏循环。paint(Graphics g):使用双缓冲技术绘制游戏内容,包括背景、玩家和敌人。logic():处理游戏逻辑,包括敌人的生成、移动和碰撞检测。
1 | public class GameWin extends JFrame { |
工具类
- 类:
GameUtils.java - 作用:提供游戏中的全局变量和工具方法,如方向控制、分数计算和关卡管理。
- 关键方法:
drawWord(Graphics g, String str, Color color, int size, int x, int y):在屏幕上绘制文字。
1 | public class GameUtils { |
我方鱼
- 类:
MyFish.java - 作用:定义玩家鱼的属性和行为。
- 关键方法:
logic():根据方向键输入更新鱼的位置。paintSelf(Graphics g):绘制鱼的图像。getRec():返回鱼的矩形区域用于碰撞检测。
1 | public class MyFish { |
敌人鱼
- 类:
Enemy.java - 作用:定义敌人鱼的属性和行为,包括多个子类以实现不同类型和方向的敌人鱼。
- 关键方法:
paintSelf(Graphics g):绘制敌人鱼的图像。getRec():返回敌人鱼的矩形区域用于碰撞检测。
1 | public class Enemy { |
背景
- 类:
Bg.java - 作用:绘制游戏背景,并根据游戏状态显示不同的文字信息。
- 关键方法:
paintSelf(Graphics g, int fishLevel):绘制背景和状态信息。
1 | public class Bg { |
键盘控制移动
- 功能描述:玩家可以通过键盘的W、A、S、D键控制鱼的上下左右移动。
- 关键代码:
1 | this.addKeyListener(new KeyAdapter() { |
- 实现细节:
- 使用
KeyListener监听键盘事件。 - 按下W、A、S、D键时,分别将
GameUtils中的方向标志设置为true。 - 松开按键时,将对应的方向标志设置为
false。 - 在
MyFish类的logic()方法中,根据方向标志更新鱼的位置。
- 使用
等级与难度的计算
- 功能描述:根据玩家的分数动态调整游戏的等级和难度,分数越高,敌人鱼的速度和出现频率越高。
- 关键代码:
1 | if (GameUtils.count < 5) { |
- 实现细节:
- 根据玩家的分数
GameUtils.count来判断当前的关卡等级。 - 不同的关卡等级对应不同的敌人生成逻辑和移动速度。
- 玩家的鱼也会随着关卡的提升而升级,等级越高,鱼的体积越大。
- 根据玩家的分数
Boss功能
- 功能描述:在特定条件下生成Boss鱼,玩家需要避开Boss并击败它以获得更高的分数。
- 关键代码:
1 | if (GameUtils.count >= 150 && !isBoss) { |
- 实现细节:
- 当玩家分数达到一定值时,生成Boss鱼。
- Boss鱼具有更高的速度和体积,玩家需要小心躲避。
- 如果玩家成功击败Boss,将获得大量分数并提升关卡。
暂停和重新开始功能
- 功能描述:玩家可以随时暂停游戏,并在游戏结束或失败后重新开始游戏。
- 关键代码:
1 | // 暂停功能 |
- 实现细节:
- 使用空格键切换游戏的暂停和继续状态。
- 在游戏结束或失败时,点击鼠标可以重新开始游戏。
- 重新开始游戏时,重置所有游戏参数,包括分数、等级、敌人列表等。
- 开始页面

- 游戏内容

- 游戏失败

- 游戏暂停

- 游戏胜利
数值拉太高自己打不过了 暂时先空着orz
- 增加音效:为游戏添加背景音乐和音效,提升游戏体验。
- 添加更多敌人类型:扩展敌人鱼的种类和行为,增加游戏的挑战性。
- 优化碰撞检测:使用更高效的数据结构来处理大量敌人和复杂场景。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ꒰ঌ(🎀ᗜ` v ´ᗜ 🌸)໒꒱💈!
评论
