3 个不稳定版本
0.3.1 | 2024年4月5日 |
---|---|
0.3.0 | 2024年4月5日 |
0.2.1 | 2022年2月24日 |
196 在 游戏开发
63 每月下载次数
190KB
4K SLoC
nightrunner-lib
这个库是一个文本冒险游戏引擎,可用于创建基于文本的冒险游戏。它设计用于与任何语言编写的前端一起使用。将此库实现为一种语言的问题在于编写前端并传递字符串数据以供库解析。
使用 Rust 库
parse_input
和 parse_input_json
函数是前端需要调用的唯一函数,但库公开了一些内部结构和函数,以帮助开发者理解库的工作原理,并允许在库的使用方面有一点点灵活性。
要初始化解析器,必须使用构建器模式通过 NightRunnerBuilder
将 JSON 字符串或包含游戏配置的 YAML 文件路径传递给解析器。
示例
use nightrunner_lib::NightRunner;
use nightrunner_lib::NightRunnerBuilder;
use nightrunner_lib::parser::interpreter::{ParsingResult};
let mut nr = NightRunnerBuilder::new().with_path("/game_config/").build();
let result = nr.parse_input("look");
let json_result = nr.json_parse_input("look");
assert!(result.is_ok());
assert_eq!(result.unwrap(),
ParsingResult::Look(String::from("first room\nHere you see: \n\na item1\na item2"))
);
assert_eq!(json_result,
"{\"ok\":{\"look\":\"first room\\nHere you see: \\n\\na item1\\na item2\"}}".to_string()
);
要运行 Rust 示例,请运行
cargo run --example cursive_example
此示例应能向您展示如何在 Rust 中使用库以及如何为您的游戏构建前端。
使用 Wasm 库
将 npm 中的 nightrunner_lib 包添加到您的存储库中
yarn add @nightrunner/nightrunner_lib
注意
您需要一个打包器来使用此包。目前我推荐使用 Vite。有关如何使用 Vite 与此库的示例,请查看存储库中的 examples/wasm
文件夹。另一个流行的且受良好支持的打包器是 webpack。
parse
函数是前端需要调用的唯一函数。它接收简单的字符串输入,并将结果作为 JSON 解析字符串返回。
要在 Wasm 中初始化解析器,必须在 JavaScript 中创建 NightRunner
类的新实例时传递包含游戏配置的 JSON 字符串。
示例
// This data can also be retrieved from an api endpoint with the browser
// fetch API.
import data from "./data.json";
import { NightRunner } from "@nightrunner/nightrunner_lib";
// Load the NightRunner library.
// The NightRunner class expects stringified JSON data.
const engine: NightRunner = new NightRunner(JSON.stringify(data));
let result = engine.parse("look");
// {"messageType":"look","data":"first room\n\nHere you see: \nan item1\nan item2\nsubject1"}
依赖关系
~6–8.5MB
~145K SLoC