一个基于 JavaFX 开发的经典消除类益智游戏,提供流畅的游戏体验和精美的视觉效果。
消灭泡泡糖(Bubble Popstar) 是一款休闲益智类消除游戏。玩家需要点击相同颜色的相邻泡泡糖进行消除,消除的泡泡糖越多,得分越高。游戏设有多个关卡,每个关卡都有相应的目标分数,达到目标分数即可通关。
- 开发者: Frank.Chen
- 版本: 1.5
- 技术支持: www.campsg.cn
- 点击消除: 点击2个或以上相同颜色的相邻泡泡糖进行消除
- 重力效果: 消除后泡泡糖会自动下落和左移填补空位
- 关卡系统: 多个难度递增的关卡
- 目标分数: 每关都有特定的目标分数需要达成
消除泡泡糖的得分公式:得分 = 5 × n²(n为消除的泡泡糖数量)
具体示例:
- 消除 1 个泡泡糖 → 5 分
- 消除 2 个泡泡糖 → 20 分
- 消除 3 个泡泡糖 → 45 分
- 消除 4 个泡泡糖 → 80 分
- 消除 5 个泡泡糖 → 125 分
- 消除 10 个泡泡糖 → 500 分
💡 技巧提示: 尽量一次性消除更多的泡泡糖,因为得分是按平方增长的!
当场上剩余泡泡糖数量小于等于5个时,会获得额外奖励:
奖励分数 = 20 × (剩余泡泡糖数 - 5)²
具体示例:
- 剩余 5 个泡泡糖 → 奖励 0 分
- 剩余 4 个泡泡糖 → 奖励 20 分
- 剩余 3 个泡泡糖 → 奖励 80 分
- 剩余 2 个泡泡糖 → 奖励 180 分
- 剩余 1 个泡泡糖 → 奖励 320 分
- 剩余 0 个泡泡糖 → 奖励 500 分
💡 技巧提示: 争取清空所有泡泡糖获得最高奖励!
游戏提供三种特殊道具辅助玩家:
| 道具 | 图标 | 功能说明 |
|---|---|---|
| 💣 炸弹 | ![]() |
可消除周围的泡泡糖 |
| 🎨 油漆桶 | ![]() |
可改变泡泡糖的颜色 |
| 🌈 彩虹 | ![]() |
可消除任意颜色的一列泡泡糖 |
┌─────────────────────────────────────┐
│ 第1关 目标 1000 💰 │ ← 关卡信息栏
├─────────────────────────────────────┤
│ 分数:0 💣 🎨 🌈 │ ← 分数和道具栏
├─────────────────────────────────────┤
│ │
│ [游戏区域 10×10] │ ← 游戏区域(480×480像素)
│ │
│ 🔴🔵🟢🟡🟣 │
│ 🔵🟢🔴🟡🔵 │
│ │
├─────────────────────────────────────┤
│ 技术支持:www.campsg.cn │ ← 底部信息栏
└─────────────────────────────────────┘
src/res/img/
├── popstar.png # 游戏图标
├── bomb.png # 炸弹道具
├── paint.png # 油漆桶道具
├── rainbow.png # 彩虹道具
├── bubble2.png # 泡泡糖图片
├── money_plus.png # 金币图标
├── front.jpg # 前景图片
├── front2.png # 前景图片2
└── csg.png # 网站图标
游戏提供两套CSS皮肤主题:
skin1.css- 默认主题skin2.css- 备选主题
- Java: JDK 1.8
- UI框架: JavaFX
- 依赖注入: Spring Framework 3.2.0
- 日志: Log4j 1.2.15
- 构建工具: Eclipse + JavaFX Plugin
PRJ_BU2_JAVA_001/
├── src/ # 源代码目录
│ ├── cn/campsg/practical/bubble/
│ │ ├── MainClass.java # 程序入口
│ │ ├── MainForm.java # 主窗体(720行核心代码)
│ │ ├── common/ # 公共组件
│ │ │ ├── Message.java # 消息常量
│ │ │ ├── StarAnimation.java # 动画效果
│ │ │ └── StarFormUtils.java # 泡泡糖UI工具类
│ │ ├── service/ # 业务逻辑层
│ │ │ ├── StarService.java # 泡泡糖服务接口
│ │ │ ├── StarServiceImpl.java # 泡泡糖服务实现
│ │ │ ├── ScoreService.java # 计分服务接口
│ │ │ ├── ScoreServiceImpl.java # 计分服务实现
│ │ │ └── ScoreManager.java # 分数管理器
│ │ └── util/ # 工具类
│ │ └── StarsUtil.java # 泡泡糖工具类
│ ├── res/ # 资源文件
│ │ ├── layout/
│ │ │ └── main_layout.fxml # 主界面布局
│ │ ├── img/ # 图片资源
│ │ └── css/ # 样式文件
│ ├── service.xml # Spring配置文件
│ ├── score.conf # 分数配置文件
│ └── log4j.properties # 日志配置
├── bin/ # 编译输出目录
├── lib/ # 第三方依赖库
│ ├── spring-*.jar # Spring框架
│ ├── log4j-1.2.15.jar # 日志组件
│ ├── commons-logging-1.0.4.jar # 日志组件
│ └── entity.jar # 实体类库
└── build.fxbuild # JavaFX构建配置
- 功能: 游戏主界面控制器,包含所有游戏逻辑
- 代码行数: 721 行
- 主要功能:
- 初始化游戏界面和泡泡糖矩阵
- 处理用户点击事件
- 控制泡泡糖消除和移动动画
- 关卡管理和分数统计
- 通关判定和失败重试
- 创建10×10泡泡糖矩阵
- 查找可消除的泡泡糖集合
- 计算泡泡糖移动路径(垂直和水平)
- 判断游戏结束条件
- 根据消除数量计算得分
- 计算清空奖励分数
- 管理关卡目标分数
- 判断是否通关
- MVC模式: 界面、业务逻辑和数据分离
- 依赖注入: Spring IoC容器管理服务对象
- 观察者模式: 事件监听机制处理用户交互
- JDK: 1.8 或更高版本(必须支持 JavaFX)
- 操作系统: Windows / macOS / Linux
- 内存: 至少 512MB RAM
项目已经编译完成,可以直接运行:
# 1. 进入项目目录
cd PRJ_BU2_JAVA_001
# 2. 运行游戏(Windows)
java -cp "bin;lib/*" cn.campsg.practical.bubble.MainClass
# 3. 运行游戏(macOS/Linux)
java -cp "bin:lib/*" cn.campsg.practical.bubble.MainClass- 导入项目:
File→Import→Existing Projects into Workspace - 选择
PRJ_BU2_JAVA_001目录 - 右键点击
MainClass.java→Run As→Java Application
- 打开项目:
File→Open→ 选择PRJ_BU2_JAVA_001目录 - 添加依赖库:
File→Project Structure→Libraries→ 添加lib目录下的所有jar文件 - 运行
MainClass的main方法
如果需要修改代码后重新编译:
# 1. 编译源代码
cd PRJ_BU2_JAVA_001/src
javac -d ../bin -cp "../lib/*" cn/campsg/practical/bubble/*.java cn/campsg/practical/bubble/*/*.java
# 2. 复制资源文件(如果修改了资源)
# Windows
xcopy res ..\bin\res /E /I /Y
# Linux/macOS
cp -r res ../bin/
# 3. 运行游戏
cd ..
java -cp "bin;lib/*" cn.campsg.practical.bubble.MainClass- 观察全局: 游戏开始时先观察整个棋盘,寻找连接数量最多的泡泡糖团
- 从大到小: 优先消除大的泡泡糖团,因为得分按平方计算
- 规划路线: 考虑消除后泡泡糖会如何移动,提前规划下一步
- 连锁反应: 利用泡泡糖下落和左移的特性,创造连锁消除
- 保留选项: 不要过早消除小团,可能会阻断更大的消除机会
- 追求清空: 尽量清空所有泡泡糖获得最高奖励(500分)
- 颜色平衡: 注意保持各种颜色泡泡糖的平衡,避免某种颜色过于零散
- 单次消除10个以上泡泡糖可获得500+分
- 清空棋盘额外获得500分
- 第一关目标1000分,后续关卡目标递增
- 每通过一定数量的关卡,难度会提升
spring-beans-3.2.0.RC1.jar- Bean容器spring-context-3.2.0.RC1.jar- 应用上下文spring-context-support-3.2.0.RC1.jar- 上下文支持spring-core-3.2.0.RC1.jar- 核心库spring-expression-3.2.0.RC1.jar- 表达式语言
log4j-1.2.15.jar- Log4j日志框架commons-logging-1.0.4.jar- Apache通用日志接口
entity.jar- 游戏实体类(Star、StarList、MovedStar等)
项目支持调试模式,可以显示泡泡糖坐标等信息:
- 修改
log4j.properties文件,设置日志级别为DEBUG:
log4j.rootLogger=DEBUG, stdout- 重新运行游戏,点击顶部标题栏可以显示/隐藏泡泡糖坐标
Spring配置文件,定义了两个核心服务Bean:
scoreService- 计分服务starService- 泡泡糖服务
分数配置文件,可以自定义:
- 初始目标分数
- 关卡递增规则
- 奖励分数计算参数
日志配置文件,控制日志输出级别和格式
A: 确保使用的是Oracle JDK 8,OpenJDK某些版本不包含JavaFX。或者需要单独安装JavaFX SDK。
A: 源代码使用GBK编码,如果IDE显示乱码,请设置编码为GBK或GB2312。
A: 确保资源文件在正确的位置(bin/res目录),如果重新编译需要复制资源文件到bin目录。
A: 检查lib目录下的jar包是否完整,确保service.xml在classpath中。
游戏支持自定义CSS主题,可以修改以下文件:
src/res/css/skin1.csssrc/res/css/skin2.css
在 main_layout.fxml 中可以切换主题:
stylesheets="@../css/skin2.css"本项目为学习和教学目的创建,欢迎学习和参考。
- 技术支持: www.campsg.cn
- Java官方文档: https://docs.oracle.com/javase/8/docs/
- JavaFX文档: https://docs.oracle.com/javase/8/javafx/api/
- Spring Framework: https://spring.io/projects/spring-framework
如有问题或建议,请访问:www.campsg.cn
享受游戏,挑战高分! 🎮✨



