131 个版本 (73 个破坏性更新)

0.79.3 2024 年 4 月 19 日
0.79.1 2023 年 12 月 28 日
0.78.2 2023 年 11 月 22 日
0.54.1 2023 年 7 月 21 日
0.27.0 2022 年 11 月 29 日

#14 in 游戏

Download history 6/week @ 2024-05-16 5/week @ 2024-05-23 2/week @ 2024-05-30 4/week @ 2024-06-06 10/week @ 2024-07-04 165/week @ 2024-07-25 23/week @ 2024-08-01

每月 188 次下载

GPL-3.0-or-later

54KB
1K SLoC

这是 Oort 的 API 参考文档。有关更多信息,请参阅 wiki

入门代码

Oort 预期您的代码有一个 Ship 类型,具有一个 tick 方法。每个教程都提供了一些入门代码,包括这些

use oort_api::prelude::*;

pub struct Ship {}

impl Ship {
    pub fn new() -> Ship {
        Ship {}
    }

    pub fn tick(&mut self) {
    }
}

当创建船只时,游戏将调用您的 new 函数,然后在模拟期间每秒调用 tick 60 次。

struct Ship 适用于存储需要在 ticks 之间持续的状态。 enum Ship 也很有用,当此状态在不同船只类别之间不同时,它可能很有帮助。

语句 use oort_api::prelude::* 导入所有 API,以便您可以简单地使用它们,例如 position()。有关导入的所有内容的详细信息,请参阅 [prelude] 模块文档。以下将介绍重要的 API。

子系统

船只执行的任何操作(如开火或扫描雷达)都在 ticks 之间发生。特别是,设置雷达航向或无线电频道将在下一个 tick 影响扫描结果或接收到的消息。

船只状态和控制

基本状态

引擎控制

引擎限制

武器

雷达

在Oort中的雷达被建模为一个可以指向任何方向,且波束宽度在1/720到1/4圆周之间(驱逐舰和巡洋舰至少为1/3600)。被此波束照亮的敌舰会反射与其雷达横截面积成比例的能量(大型舰艇横截面积更大)。雷达每次扫描可以返回一个接触。雷达方向/宽度/滤波器的任何更改将在下一个扫描周期生效。

返回的接触位置和速度将具有与信号强度成反比的误差。

基本操作

高级滤波

电子对抗措施(ECM)

ECM的目标是降低敌舰雷达的有效性。要使ECM生效,敌舰雷达必须指向你的船,而你的船的雷达必须指向敌舰。当ECM启用时,雷达将不会返回接触。

检索当前状态

无线电

无线电可以用于在每个计时周期发送或接收一个[f64; 4]消息。有10个频道可用(0到9),由所有队伍共享。

特殊能力

一些船类具有独特的特殊能力。这些能力需要激活,激活后将在短时间内发挥作用,然后需要重新加载。可以通过API提前取消激活能力。如果能力被激活且从未被取消激活,则在重新加载时间过后,它将自动重新启动。

标量数学

查看Rust文档获取f64方法的完整列表。

矢量数学

二维浮点矢量(Vec2)在Oort中无处不在,用于表示位置、速度、加速度等。

整个maths_rs包也是可用的。

调试

在UI中点击一艘船会显示状态信息,以及表示其加速度、雷达锥等的图形。您可以使用以下函数添加内容。

按下 'g' 键进入调试模式也会显示所有舰船的调试图形。

杂项

额外箱子

以下箱子可用于您的代码

  • byteorder: 读写二进制数据的实用工具,对无线电很有用。
  • maths_rs: 一个线性代数库。
  • oorandom: 一个随机数生成库。

舰船类别

  • Fighter: 小型、快速、轻装甲。
    • 健康值:100
    • 加速度:前进:60 m/s²,横向:30 m/s²,后退:30 m/s²,角加速度:2π rad/s²
    • 武器 0:枪,速度:1000 m/s,装弹:66ms
    • 武器 1:导弹,装弹:5s
  • Frigate: 中等大小,拥有重装甲和极其强大的主炮。
    • 健康值:10000
    • 加速度:前进:10 m/s²,横向:5 m/s²,后退:5 m/s²,角加速度:π/4 rad/s²
    • 武器 0:枪,速度:4000 m/s,装弹:2秒
    • 武器 1:枪,速度:1000 m/s,装弹:66ms,可转向
    • 武器 2:枪,速度:1000 m/s,装弹:66ms,可转向
    • 武器 3:导弹,装弹:2s
  • 巡洋舰:大型、缓慢且装甲厚重。配备快速发射导弹发射器和破坏性鱼雷。
    • 生命值:20000
    • 加速度:前进:5 m/s²,侧向:2.5 m/s²,倒退:2.5 m/s²,角加速度:π/8 rad/s²
    • 武器 0:枪械,速度:2000 m/s,弹夹容量:6,装弹时间:5s,可旋转炮塔
    • 武器 1:导弹,装弹时间:1.2s
    • 武器 2:导弹,装弹时间:1.2s
    • 武器 3:鱼雷,装弹时间:3s
  • 导弹:高度机动但无装甲。接触或调用 explode 后爆炸。
    • 生命值:20
    • 燃料:2000 m/s
    • 加速度:前进:300 m/s²,倒退:0 m/s²,侧向:100 m/s²,角加速度:4π rad/s²
  • 鱼雷:装甲更好,弹头更大,但比导弹机动性差。接触或调用 explode 后爆炸。
    • 健康值:100
    • 燃料:3000 m/s
    • 加速度:前进:70 m/s²,倒退:0 m/s²,侧向:20 m/s²,角加速度:2π rad/s²

依赖项

~435–640KB
~14K SLoC