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

Download history 37/week @ 2024-03-11 6/week @ 2024-04-01

279 monthly downloads

MIT-0许可证

36KB
809

Protologic.rs

这是一个用于在Rust中使用Protologic的模板项目。

入门指南

  1. 克隆此仓库
  2. 安装Rust的wasm工具链
    1. 打开终端(例如PowerShell/bash)
    2. 运行: rustup target add wasm32-wasi
  3. 下载最新的binaryen版本,将其放置在tools/binaryen
  4. 运行build.ps1来编译演示舰队。
  5. 待办:sim指令/链接
  6. 待办:玩家指令/链接

替代方案

如果您不需要整个示例项目,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