-
本源码版权归广州半桶网络科技有限公司,只能参考学习,不可转售。
-
项目中的代码可以复制到自己的项目中使用,但图片资源不能用于商业目的。
-
配乐来自于爱给网的CC0许可协议音频。
-
安装node.js环境,下载源码后打开控制台进入项目根目录,执行
npm install
安装依赖,然后npm run dev
,在浏览器访问输出的地址即可 -
PC浏览器使用WASD按键移动方向,鼠标点击控件
-
移动端浏览器使用虚拟摇杆/按键移动方向
-
地图编辑器:Tiled Editor
-
数据编辑器:WPS Office 的表格(编辑_assist/config/*.xml)
-
npm run dev: 调试
-
npm run image: 生成开发环境用的加载图片的代码
-
npm run data: 打包配置数据到
public/assets/config.bin
-
npm run map: 打包地图数据到
public/scenes.bin
-
npm run mp3: 打包音频文件到
public/sound.bin
_assist 为辅助工具,用于产出游戏中需要的资源
component、game、model 三个目录与游戏内容相关
其他目录 为工具类,一般不需要改动
├── _assist 辅助工具,存放开发环境图片资源以及一些node.js脚本
├── config 配置文件
├── i18n_text.xml 对话文本
├── i18n_ui.xml UI文字,例如按钮文本`确定`等
├── images 开发时用的图片,生产环境需要用ShoeBox打包到public/assets
├── maps 包含地图工程源码,以及打包脚本
├── sounds 声音及打包脚本
├── backdoor.ts 用于开发时调整数据的后门代码
├── data.ts 打包压缩config里的文件并输出到public/assets/config.bin
├── imageDebug.ts 开发环境加载图片的代码,自动生成,不能修改
├── imageDebugCreate.ts 生成开发环境用到于加载图片的脚本
├── binary
├── ByteReader.ts 二进制数据读取器
├── ByteWriter.ts 二进制数据写入器
├── serialization.ts 序列化和反序列化js对象
├── component oixi组件
├── Home.ts
├── ...
├── game 游戏逻辑代码
├── app.ts 全局快捷入口,提供一些类的快捷访问方法
├── constant.ts 存放常量,可以供emitter使用
├── database.ts 游戏数据库
├── dataSave.ts 全局存档数据,记录存档位索引和声音开关等设置
├── dataTemp.ts 全局内存数据,不会保存到数据库中
├── debug.ts 模拟安卓原生环境接口,用于开发调试
├── routerConfig.ts 路由配置
├── ...
├── model 定义数据表结构
├── notype 存放不需要确定字段类型的数据结构
├── Common.ts 游戏选项数据,例如难易程度、剧本等
├── ...
├── native 与原生环境对接的工具
├── h2n.ts h5向原生发送消息
├── n2h.ts 接收原生发送的消息
├── public 直接复制到生产环境的资源
├── assets 图片和数据资源
├── js
├── pixi.min.js //渲染引擎
├── pako.min.js //二进制数据压缩工具
├── utils 工具类
├── emitter.ts 全局消息发送工具
├── i18n.ts 本地化管理类
├── layout.ts 相对位置布局工具
├── math.ts 数学函数的别名,避免出现大量Math.*
├── others.ts 数组排序等杂乱工具
├── router.ts 路由管理工具
├── shake.ts 抖动元素
├── sound.ts 播放器
├── tween.ts 实现补间动画的工具类
├── index.html vite入口文件
├── main.ts 程序入口文件
- Android和iOS都是只使用了WebView组件,自行搜索如何使用即可。