AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
## 内置方法 Ship类的主要便捷之处就在于内置了很多算法比较复杂的方法。 ### 静态方法 静态方法是在方法名中加了static关键字修饰的方法,例如:public static Vector3D HitPointCaculate() 静编写原则是: >[danger] 在静态方法中,不使用this关键字来访问类中的任何成员属性。 >这就表示静态方法是独立的,它的作用通常是用于纯数学计算或其他辅助运算。 在Ship类中,静态方法都位于Ship类的底部,并编写了开始标识和详细注释。 ### 非静态方法 非静态方法通常都会调用Ship类里的内置变量来完成一些功能,例如:public Target ScanPoint() ### 方法列表 所有的方法在Ship类的代码中都进行了分类放置,并编写了注释,这里仅提供方法列表和大致说明,具体情况请移步代码中查看。 ``` // ---- 非静态方法 ---- public Target ScanPoint(Vector3D Point) //摄像头搜索目标点 public Target PulseScanSingle(List<Vector3D> Points, long EntityId = 0) //摄像头对多个坐标点脉冲扫描(碰到传入的目标后就中断并返回该目标) public List<Target> PulseScanMultiple(List<Vector3D> Points) //摄像头对多个坐标点脉冲扫描(必定执行完扫描并返回目标列表) public Target TrackTarget(Target Tgt) //摄像头追踪目标 public void MotionInit() //初始化动作方块 public void UpdatePhysical() //更新飞船物理信息(这个方法必须在每一帧都调用一次,更新内容包括坐标、速度、加速度、半径。) public bool AimAtPosition(Vector3D TargetPos) //使用PID算法控制陀螺仪瞄准某个坐标点 public bool NavigationTo(Vector3D Pos, Vector3D TargetVelocity = new Vector3D()) //使用加速度反馈算法导航到某个坐标点 public void TurnBlocksOnOff(List<IMyTerminalBlock> B, bool o) //开关方块(有多个重载,可传入多种类型方块) public void SetThrustOverride(string Direction, double Value) //根据方向设置推进器越级值 public void SetGyroOverride(bool bOverride) //开关陀螺仪越级 public void SetGyroValue(double Y, double P, double R) //根据方向设置陀螺仪越级(有一个重载用法) public void WeaponsShoot() //让所有武器射击一次 // ---- 静态方法 ---- public static string GetOneInfo(string CustomData, string Title, string ArgName) //按FCS8.0通讯标准获取一条指令的值 public static Vector3D HitPointCaculate() //传入多个参数,计算弹道碰撞点(FCS预瞄算法的核心) public static List<IMyCameraBlock> GetCanScanCameras(List<IMyCameraBlock> Cams, Vector3D Point) //计算可扫描某个坐标点的摄像头 public static Vector3D CaculateVerticalVector(Vector3D Vector, Vector3D Point) //计算某个矢量的垂直矢量 ```