目录
【Unity游戏】坦克飞机大战
基于 SOLID 原则构建的 Unity 2D 坦克防御射击游戏。
完整源码:On GitHub
Demo:On itch.io
SOLID及项目笔记:SOLID原则项目实践
项目信息
| 类型 | 技术栈 | 类别 |
|---|---|---|
| 2D俯视射击游戏 | C# + Unity 2022.3 | 拓展项目 |
项目简介
这是一个基于 Unity 开发的 2D 射击游戏,我在学习 SOLID 原则的过程中完成了基础版本,并在此基础上进行了系统性扩展。项目重点在于可扩展的架构设计与多角色、多武器系统的解耦实现。
核心玩法
- 玩家可分别操作三种坦克:轻型(L)、中型(M)、重型(H)
- 不同坦克拥有不同的移动方式、武器类型与伤害模型
- 屏幕右侧持续生成敌机,玩家通过击落敌机获得分数
- 若敌机撞击坦克,该坦克会失活;所有坦克失活则游戏失败
实现的扩展功能
新增中型坦克(可上下移动)
- 通过继承与接口扩展坦克系统,无需修改原有坦克逻辑
- 中型坦克移动速度与范围介于轻型与重型之间
武器系统重构与扩展
为不同坦克设计独立武器类型,并使用策略模式实现可扩展:
| 坦克类型 | 武器 | 特性 |
|---|---|---|
| 轻型坦克 | 激光 | 短暂冷却、伤害最低、扇形多发 |
| 中型坦克 | 子弹 | 中等冷却、伤害中等 |
| 重型坦克 | 导弹 | 冷却最长、伤害最高 |
伤害系统差异化
- 不同坦克受到的伤害不同
- 重型坦克最耐打,轻型坦克最脆弱
新增重型飞机(带随机上下移动)
- 使用独立的移动策略实现更复杂的敌机行为
敌机生成规则的难度曲线
- 游戏初期重型飞机概率低
- 随时间推移,重型飞机生成概率逐渐提高
- 通过时间驱动的可配置生成策略实现
设计亮点(SOLID实践)
- 单一职责原则:坦克、武器、敌机、生成器等模块职责清晰
- 开闭原则:新增坦克与武器无需修改原有代码
- 里氏替换原则:所有坦克均可通过统一接口控制
- 接口隔离原则:移动、攻击、受伤等行为拆分为独立接口
- 依赖倒置原则:高层模块依赖抽象而非具体实现
视频展示
动物世界
FSM和Boids算法实现
项目信息
| 类型 | 技术栈 | 职责 |
|---|---|---|
| 算法实现 | C++ + raylib | 独立项目 |
项目简介
本项目旨在模拟一个动态生态系统。草、羊、狼和乌鸦各自遵循不同的行为模式:草会生长并扩散;羊会寻找并吃草、逃避狼、繁殖或漫游;狼会追捕羊、繁殖或漫游;乌鸦则随机飞进飞出场景。通过这些行为的交互,草原生态逐渐形成一种动态平衡。
项目亮点
- 使用有限状态机(FSM)管理动物行为逻辑,实现状态切换与响应机制
- 应用 Boids 算法模拟乌鸦的群体飞行行为,增强自然感与动态表现
- 构建了基础生态循环机制,支持草扩散、动物繁殖与资源消耗
效果展示
🔗 查看源码 on Gitee
Hum to Heal
多人协作拍手音游,探索音乐与互动的治愈力量
项目信息
| 类型 | 技术栈 | 展出经历 |
|---|---|---|
| Arcade 音游 | Unity + C# | 2023 Gotland Game Conference |
项目简介
本项目是一款街机游戏,从游戏软件本身到街机的全部硬件,均有我和团队成员一起完成。
玩家站在机器四角,通过相邻两人的拍手击中音符块,形成节奏配合。该设计鼓励玩家之间的互动与节奏感,既适合好友一起玩,也能作为陌生人之间的破冰方式。展会现场反响热烈,吸引大量观众试玩。
职责
我独立承担全部编程与技术实现工作,包括音符判定、节奏同步、玩家输入逻辑等。同时,我设计并制作了玩家道具“手套”,将物理反馈与游戏机制结合,增强玩家沉浸感。
游戏展示