From 4255ae25bffe88b93efff17f00920cf4de705aee Mon Sep 17 00:00:00 2001 From: walon Date: Wed, 15 Jun 2022 21:01:53 +0800 Subject: [PATCH] =?UTF-8?q?[update]=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= =?UTF-8?q?=EF=BC=8C=E8=A1=A5=E5=85=85godot=E7=9B=B8=E5=85=B3=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=9A=84=E6=8F=8F=E8=BF=B0=EF=BC=8C=E8=A1=A5=E5=85=85?= =?UTF-8?q?c++=E8=AF=AD=E8=A8=80=E4=BD=BF=E7=94=A8=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2194c71..726414c 100644 --- a/README.md +++ b/README.md @@ -31,13 +31,13 @@ luban统一了游戏配置开发工作流,极大提升了策划和程序的工 - 强大的数据解析和转换能力 {excel(csv,xls,xlsx)、json、bson、xml、yaml、lua、unity ScriptableObject} => {binary、json、bson、xml、lua、yaml、erlang、 custom format} - 增强的excel格式,可以简洁地配置出像简单列表、子结构、结构列表,以及任意复杂的深层次的嵌套结构。 - 完备的类型系统,**支持OOP类型继承**,搭配excel、json、lua、xml等格式数据**灵活优雅**表达行为树、技能、剧情、副本之类复杂GamePlay数据 -- 支持生成c#、java、go、c++、lua、python、javascript、typescript、erlang、rust代码 +- 支持生成c#、java、go、c++、lua、python、javascript、typescript、erlang、rust、gdscript 代码 - 支持生成 protobuf(schema + binary + json)、flatbuffers(schema + json)、msgpack(binary) - 强大的数据校验能力。ref引用检查、path资源路径、range范围检查等等 - 完善的本地化支持。静态文本值本地化、动态文本值本地化、时间本地化、main-patch多地区版本 - 强大灵活的自定义能力,支持自定义代码模板和数据模板 - **通用型生成和缓存工具**。也可以用于生成协议、数据库之类的代码,甚至可以用作对象缓存服务 -- **良好支持主流引擎、全平台、主流热更新方案、主流前后端框架**。支持unity、unreal、cocos2x、微信小游戏等主流引擎。工具自身跨平台,能在Win,Linux,Mac平台良好工作。 +- **良好支持主流引擎、全平台、主流热更新方案、主流前后端框架**。支持Unity、Unreal、Cocos2x、Godot、微信小游戏等主流引擎。工具自身跨平台,能在Win,Linux,Mac平台良好工作。 完整特性请参见 [feature](https://focus-creative-games.github.io/luban/generate_code_data/) @@ -529,13 +529,13 @@ Reward为包含 "int item_id; int count; string desc; " 这三个字段的子结 ## 代码使用预览 -这儿只简略展示c#、typescript、go语言在开发中的用法,更多语言以及更详细的使用范例和代码见[示例项目](https://github.com/focus-creative-games/luban_examples)。 +这儿只简略展示c#、typescript、go、c++ 语言在开发中的用法,更多语言以及更详细的使用范例和代码见[示例项目](https://github.com/focus-creative-games/luban_examples)。 - C# 使用示例 ```C# // 一行代码可以加载所有配置。 cfg.Tables 包含所有表的一个实例字段。 -var tables = new cfg.Tables(file => return new ByteBuf(File.ReadAllBytes(gameConfDir + "/" + file + ".bytes"))); +var tables = new cfg.Tables(file => return new ByteBuf(File.ReadAllBytes($"{gameConfDir}/{file}.bytes"))); // 访问一个单例表 Console.WriteLine(tables.TbGlobal.Name); // 访问普通的 key-value 表 @@ -569,6 +569,19 @@ println(tables.TbGlobal.Name) println(tables.TbItem.Get(12).Name) ``` +- c++ 使用示例 + +```c++ + cfg::Tables tables; + if (!tables.load([](ByteBuf& buf, const std::string& s) { buf.clear(); return buf.loadFromFile("../GenerateDatas/bytes/" + s + ".bytes"); })) + { + std::cout << "== load fail == " << std::endl; + return; + } + std::cout << tables.TbGlobal->name << std::endl; + std::cout << tables.TbItem.get(12)->name << std::endl; +``` + ## 路线图 - [ ] 新增 unity 内置编辑器