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