更新记录

1.0(2026-10-08) 下载此版本

具备了基本的所有生存类游戏的功能。 人物基础属性、扩展属性、装备背包、外出地图、攻击打怪、搜索物资、庇护所建造升级等功能全部完成。 后续内容可自行扩展升级或修改。 作者V:150+47+83+43+47可联系作者要完整的项目,可随意自行修改,扩展完善。


平台兼容性

末世求生(msqs)

末世主题图文生存游戏(类似《荒野日记》)。技术栈:uni-app(Vue 3),可打包为 Android App / H5 / 小程序。


一、玩法与页面

页面 说明
pages/index 首页 开始新游戏 / 继续游戏(显示存档摘要),新游戏必经背景故事环节
pages/story 背景故事 章节式图文介绍(第三次世界大战 → 核冬天 → 变异 → 秩序崩塌 → 你醒来),点击翻页,可跳过
pages/shelter 庇护所 出生点:幸福公寓 3 楼 301 室。属性面板 + 行动网格(睡觉/小憩/翻找物资/喝水/进食/包扎/观察窗外/外出)+ 背包/日志/存档
pages/map 外出地图 预留占位页,数据结构已定义好,探索玩法后续开发

二、目录结构与模块化设计

msqs/
├── App.vue / main.js / pages.json / manifest.json / uni.scss   # uni-app 工程配置
├── common/
│   ├── data/          # ★ 数据层:所有可扩展、可修改的配置(未来接数据库的映射层)
│   │   ├── index.js       # 数据注册表(统一导出,DataManager 按 key 读取)
│   │   ├── gameConfig.js  # 游戏元信息 / 存档键 / UI 文案
│   │   ├── world.js       # 世界观:时间线 / 地区 / 威胁 / 势力
│   │   ├── story.js       # 背景故事章节(图文数据)
│   │   ├── attributes.js  # 属性定义与数值规则
│   │   ├── items.js       # 物品表
│   │   ├── actions.js     # 行动配置表(含掉落表)
│   │   ├── shelter.js     # 庇护所(公寓楼)设定
│   │   ├── map.js         # 外出地图配置(预留)
│   │   ├── climate.js     # 天气系统配置
│   │   └── player.js      # 初始角色数据
│   ├── core/           # ★ 核心层:不依赖页面的引擎
│   │   ├── DataManager.js # 数据管理器(预留 loadRemote 接数据库)
│   │   ├── SaveManager.js # 存档管理器(新建/保存/读取/迁移)
│   │   ├── EventBus.js    # 事件总线(模块解耦)
│   │   └── Game.js        # 游戏门面(页面唯一入口)
│   ├── systems/        # ★ 系统层:纯玩法逻辑
│   │   ├── AttributeSystem.js  # 属性增减/衰减/危险扣血/状态标签
│   │   ├── TimeSystem.js       # 时间推进/天气变化
│   │   ├── InventorySystem.js  # 背包增删查
│   │   └── ActionSystem.js     # 行动执行流水线(outcome 钩子扩展点)
│   ├── storage.js      # 跨平台持久化(App 写文件 / 其他端写 storage)
│   └── utils/format.js # 工具函数
├── components/         # ★ 展示组件(属性条/背包/日志)
├── pages/              # ★ 页面层(只做渲染与交互,不写死数据)
└── static/images/      # 图文素材

分层原则(数据 → 核心 → 系统 → 页面):

  • 页面 只通过 game 门面交互(game.runAction / game.saveGame),通过 game.data.get("xxx") 读取配置;
  • 页面不写死任何数值/文案/物品,全部来自 common/data;
  • 系统层 只认配置不认页面,新玩法 = 新配置 + 可选新系统;
  • 核心层 与页面解耦,未来可整体迁移到后端。

三、如何扩展

1. 新增物品

在 common/data/items.js 追加一条记录(id/name/icon/desc/effect), 掉落表、初始背包、行动配方直接引用 id 即可,页面自动渲染。

2. 新增行动

在 common/data/actions.js 追加一条配置(time/cost/effects/item/loot)。 如需特殊结算(如"观察窗外"),在 common/systems/ActionSystem.js 的 _outcomes 注册钩子。

3. 修改数值

所有属性衰减、行动消耗、掉落概率、天气概率均在 common/data/*.js 中调整,无需改代码。

4. 新增背景故事章节

在 common/data/story.js 的 chapters 追加 { id, title, image, paragraphs }。

5. 开发外出地图

在 common/data/map.js 的 regions 填充地点数据,然后在 pages/map/map.vue 按 regions 渲染。

6. 接入数据库(远期)

common/core/DataManager.js 已预留 loadRemote(source):后端就绪后, 将配置以 { items, actions, ... } 结构下发,dataManager.loadRemote(...) 即可, 所有页面与系统代码无需改动。

四、如何运行

使用 HBuilderX 打开本项目根目录(D:\mygame\msqs):

  1. 菜单:运行 → 运行到浏览器 → 选择浏览器(H5 预览)
  2. 或:运行 → 运行到手机或模拟器
  3. 打包:发行 → 原生 App-云打包

也可在项目根目录执行 npm install 后使用 uni-app CLI(npm run dev:h5 / npm run build:h5)。

五、存档说明

  • 单机本地存档(App 端写入应用私有目录 _doc/,卸载才清除;H5 端存入浏览器 storage)。
  • 新游戏 → 背景故事 → 结束后自动创建存档 → 进入庇护所;
  • 庇护所每次行动自动存档,底部导航可手动存档;
  • 死亡后清除存档并返回首页。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

暂无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

单机

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。