《天外飞仙》Java RPG 游戏开发课程规划

从零开始,用 Java Swing 手写一款塞班风格武侠回合制 RPG


一、课程总览

项目内容
课程名称Java 复古 RPG 游戏开发实战:天外飞仙
目标受众有 Java 基础语法的编程学习者(约 6-12 个月经验)
前置知识Java 基本语法(变量、循环、条件、类与对象、继承、集合框架)
技术栈Java SE 11 + Swing + AWT + 图片IO
开发工具IntelliJ IDEA + JDK 11
总课时10 集,每集约 15-30 分钟
最终产出一个可运行的回合制武侠 RPG 游戏(约 1200 行)

二、课程核心理念

2.1 教学路线设计

语法基础 ──→ Swing 窗口 ──→ 游戏循环 ──→ 玩家角色 ──→ 场景地图
        └──→ 战斗系统 ──→ 武功招式 ──→ 物品装备 ──→ NPC商店
        └──→ 表情流程 ──→ 美术生成 ──→ 打包发布

2.2 教学原则

  1. 渐进式构建:每一集在前一集基础上增量添加功能
  2. 先跑通再优化:先让代码跑起来,再讲设计模式与代码重构
  3. 可视化为驱动力:每集的结束都有可展示的视觉效果,保持成就感
  4. 边学边写边调试:演示真实的 Debug 过程,培养排错思维

2.3 代码量分布

集数主题新增代码行累计代码行
第1集环境搭建 + Swing 窗口~30~30
第2集游戏循环 + 双缓冲渲染~60~90
第3集玩家角色类 + 属性系统~80~170
第4集场景地图 + 移动逻辑~120~290
第5集战斗系统核心(上)~180~470
第6集战斗系统核心(下)~100~570
第7集武功招式 + 物品装备系统~150~720
第8集商店客栈 + NPC对话~120~840
第9集剧情流程 + 胜利条件~100~940
第10集AI美术资源 + 发布打包~260(JS)+ 设计完成

注:实际项目约 1240 行 Java 代码 + 一个 JS 图片生成工具


三、各集详细规划

第1集:开发环境搭建与 Swing 基础

目标:配置开发环境,创建第一个 Java Swing 窗口

知识点

  • JDK 11 安装与环境变量配置(JAVA_HOME, PATH)
  • IntelliJ IDEA 新建 Java 项目
  • Swing 核心类:JFrame, JPanel
  • 窗口属性设置(大小、标题、居中、关闭行为)
  • SwingUtilities.invokeLater 线程安全启动

代码成果

  • Main.java:240×320 空窗口,居中显示,标题"天外飞仙"

教学亮点

  • 展示包名规范(game 包)
  • 使用 Toolkit.getDefaultToolkit().getScreenSize() 屏幕居中

第2集:游戏循环与双缓冲渲染

目标:实现 30fps 游戏主循环 + 避免画面闪烁

知识点

  • Java 多线程基础:Thread, Runnable
  • 游戏循环结构:update()render()repaint()
  • 帧率控制:Thread.sleep() 时间差
  • 双缓冲技术(BufferedImage + paintComponent)
  • 键盘输入:KeyListener 接口

代码成果

  • GamePanel.java:游戏面板,30fps 循环,无闪烁绘制
  • GamePanel 实现 RunnableKeyListener

教学亮点

  • 演示未使用双缓冲时的闪烁问题
  • 讲解为什么游戏需要独立线程(避免阻塞事件分发线程 EDT)

第3集:玩家角色类与属性系统

目标:设计玩家模型,显示状态栏

知识点

  • 面向对象设计:Player 类的字段与方法
  • 战斗属性设计(气血HP、内力MP、攻击、防御、速度)
  • 经验值与升级公式
  • Java 集合:ArrayList<Item>, ArrayList<Skill>
  • Serializable 接口

代码成果

  • Player.java:玩家类,包含战斗属性、背包、武功列表
  • 状态栏渲染:HP/MP 进度条

教学亮点

  • 讲解数值平衡:为什么 HP=100, MP=30 的初始值
  • 升级公式设计:maxExp = maxExp * 1.4

第4集:场景地图与移动逻辑

目标:设计多个可移动的场景,实现上下移动

知识点

  • Scene 类设计与数组配置
  • Java 静态字段初始化:ALL_SCENES
  • 链式调用:.setShop(true).setInn(true)
  • 场景间移动逻辑与边界检查
  • 随机遇敌系统

代码成果

  • Scene.java:7个场景(清风镇→森林→山道→古寺→沼泽→魔教→凌霄峰)
  • 场景渲染 + 方向提示文字

教学亮点

  • 用静态工厂方式配置全场景
  • 讲解"设计数据结构时考虑扩展性"
  • 遇敌概率 = 10 + areaLevel * 3 的算法设计

第5集:战斗系统核心(上)

目标:回合制战斗的基本架构

知识点

  • 游戏状态机设计(GameState 枚举)
  • BattleSystem 类的职责划分
  • 玩家攻击、敌人攻击的伤害公式
  • 战斗流程:命令选择 → 行动 → 结算 → 敌人回合

代码成果

  • BattleSystem.java:核心战斗逻辑
  • 战斗 UI:四个操作按钮(攻击、武功、物品、逃跑)

教学亮点

  • 状态机跳转图(标题→大地图→战斗→胜利/失败)
  • 伤害公式:max(1, atk - def/2 + random(5))

第6集:战斗系统核心(下)

目标:完善战斗交互,修复 bugs

知识点

  • 战斗子状态:phase 0(菜单)→ phase 1(选目标)→ phase 2(选技能)→ phase 3(选物品)→ phase 4(技能选目标)
  • 目标选择 + 敌人血量条
  • 敌人 AI(概率放技能 vs 普通攻击)
  • 边界条件处理(空列表保护)

代码成果

  • 完整的战斗交互循环
  • 战斗胜利/失败处理
  • Bug 修复:handleBattleInputalive.isEmpty() 保护的完善

教学亮点

  • 演示空列表导致 IndexOutOfBoundsException 的调试过程
  • 讲解防御性编程

第7集:武功招式与物品装备系统

目标:设计武功系统、物品和装备系统

知识点

  • Skill 类的枚举设计(类型、目标)
  • Item 类的品质体系(Common→Uncommon→Rare→Legendary)
  • 武功使用条件(等级需求 + MP消耗)
  • 装备系统(武器+防具的攻击/防御加成)
  • 背包管理

代码成果

  • Skill.java:12种武功,5种类型
  • Item.java:13种物品,4种品质
  • 装备栏渲染 + 装备加成计算

教学亮点

  • 枚举的高级用法(enum 构造函数 + 字段)
  • 展示"策划配表"到代码的映射
  • 武功平衡性讨论

第8集:商店、客栈与 NPC 对话

目标:实现在城镇中与 NPC 交互的功能

知识点

  • 商店系统:购买/出售逻辑
  • 客栈系统:付费回血
  • NPC 对话:字符串数组管理
  • 事件触发:检查场景属性进入不同状态
  • 菜单系统:状态/武功/装备/背包查看

代码成果

  • 商店界面(物品列表 + 购买)
  • 客栈界面(回复 HP/MP)
  • NPC 对话展示
  • 全局菜单(X键呼出)

教学亮点

  • 状态模式:不同 GameState 下的渲染和输入隔离
  • 函数式分割:renderTitle(), renderShop(), renderBattle()

第9集:剧情流程与胜利条件

目标:串联完整的游戏流程

知识点

  • 剧情推进:storyProgress 状态追踪
  • Boss 战设计(魔教教主、天外飞仙幻象)
  • 胜利/失败画面渲染
  • 粒子特效(星光、dust particles)
  • 游戏重玩流程

代码成果

  • 完整剧情节点的触发条件
  • renderVictory() + renderGameOver()
  • renderLevelUp() 升级展示

教学亮点

  • storyProgress + currentScene 实现分支剧情
  • 数学函数做简单特效:Math.sin(t/500.0 + i) * 40

第10集:AI 美术资源生成与打包发布

目标:用 AI 生成游戏美术资源,打包可运行程序

知识点

  • generate_assets.js 文件结构
  • Node.js 调用 HTTP API
  • 提示词工程(Prompt Engineering)为不同品类编写 Prompts
  • 图片加载与文件路径管理
  • bat 脚本打包编译

代码成果

  • 完整的美术资产(场景×8 + 敌人×8 + 物品×13 + 武功×8 + 玩家 + UI)
  • run_game.bat 一键编译运行

教学亮点

  • 演示 AI 生成到游戏内展示的全链路
  • 图片加载失败的回退设计(fallback 纯色/几何图形)
  • 提示词结构拆解:风格 + 主体 + 环境 + 构图 + 画质

四、配套资源

资源位置
完整项目源码outputs/tianwai-feixian-rpg/
教学手册outputs/tianwai-feixian-course/教学手册.md
教学方案outputs/tianwai-feixian-course/教学方案.md
视频文案outputs/tianwai-feixian-course/视频文案-第*.md
AI 图片生成脚本outputs/tianwai-feixian-rpg/generate_assets.js
一键运行脚本outputs/tianwai-feixian-rpg/run_game.bat

五、课程亮点设计

  1. 塞班风格:240×320 像素 + 2x 缩放的复古感
  2. 真实 RPG:不是 DEMO,是包含剧情、战斗、装备、升级的完整游戏
  3. AI 辅助:展示 2025 年代的游戏开发方式——用 AI 生成美术资源
  4. 调试教学:每个核心功能都有 Debug 环节
  5. 并行知识:面向对象设计、算法、状态机、设计模式

更多推荐