23个稳定版本 (10个主要版本)
使用旧的Rust 2015
11.0.0 | 2024年2月8日 |
---|---|
10.0.0 | 2024年1月31日 |
9.0.0 | 2024年1月26日 |
8.1.1 | 2024年1月23日 |
1.0.0 | 2023年11月23日 |
8 in #wrappers
279 monthly downloads
36KB
809 行
Protologic.rs
这是一个用于在Rust中使用Protologic的模板项目。
入门指南
- 克隆此仓库
- 安装Rust的
wasm
工具链- 打开终端(例如PowerShell/bash)
- 运行:
rustup target add wasm32-wasi
- 下载最新的
binaryen
版本,将其放置在tools/binaryen
- 运行
build.ps1
来编译演示舰队。 - 待办:sim指令/链接
- 待办:玩家指令/链接
替代方案
如果您不需要整个示例项目,protologic_core
也可在crates.io上找到。
项目结构
该项目分为两个Rust "crates"。
protologic_core
protologic_core
包含对游戏API的绑定。lowlevel
是对不安全的WASM API的直接绑定。highlevel
是对低级绑定的稍好用的包装器。您永远不需要编辑此项目。
demo_fleet
demo_fleet
包含一个简单的演示舰队。lib.rs
是此项目的根目录,包含一个游戏每帧都会调用的tick
函数。
#[no_mangle]
pub extern fn tick()
{
// Every frame
}
state.rs
是演示舰队的主体实现。您可以删除所有这些,也可以将其用作入门框架。
特殊方法
如果您的代码调用特殊方法sched_yield()
,则您的程序执行将立即暂停,下一次帧将从该点恢复执行而不是调用tick()
。这允许您编写更简单的程序,例如
radar_trigger(); // Trigger radar, results will be available next frame
sched_yield(); // Wait for the next frame.
for i in 0..radar_get_target_count() {
// Radar contact!
}
依赖项
~0.4–0.9MB
~20K SLoC