作品集

我的一些作品,持续更新

目录

【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

项目简介

本项目是一款街机游戏,从游戏软件本身到街机的全部硬件,均有我和团队成员一起完成。

玩家站在机器四角,通过相邻两人的拍手击中音符块,形成节奏配合。该设计鼓励玩家之间的互动与节奏感,既适合好友一起玩,也能作为陌生人之间的破冰方式。展会现场反响热烈,吸引大量观众试玩。

职责

我独立承担全部编程与技术实现工作,包括音符判定、节奏同步、玩家输入逻辑等。同时,我设计并制作了玩家道具“手套”,将物理反馈与游戏机制结合,增强玩家沉浸感。

游戏展示

关卡选择界面
关卡选择界面
新手引导界面
新手引导界面
第一关游戏界面
第一关游戏界面
第二关游戏界面
第二关游戏界面
第三关游戏界面
第三关游戏界面
团队及活动当天
团队及活动当天

视频效果

CC BY-NC-ND
最后更新于 Mar 11, 2026 19:01 +0800
发表了13篇文章 · 总计9万0千字
本博客已运行
使用 Hugo 构建
主题 StackJimmy 设计