Space Engineers держим горизонт при помощи скрипта

Нормализация шатла

Сегодня будем учить наш RemoteControl постоянно держать горизонт относительно планеты, на базе такого можно сделать мини шатл поменяв в скрипте IMyRemoteControl на IMyCockpit.

График нормализации будет выглядеть так.

Идея в том чтобы линейно передавать значения в гироскоп, при отклонении от вектора центра массы планеты.

Вот сам скрипт

IMyRemoteControl RemCon;
List<IMyGyro> gyroList;
public Program()
{
gyroList = new List<MyGyro>();
GridTerminalSystem.GetBlockWithName(«RemCon») as IMyRemoteControl;
Runtime.UpdateFrequence = UpdateFrequence.Update1;
}public void Main()
{
Vector3D GravityVector = RemCon.GetNaturalGravity();
Vector3D GravNorm = Vector3D.Normalize(GravityVector);
float RollInput = (float)GravNorm.Dot(RemCon.WorldMatrix.Left);
float PitchInput = -(float)GravNorm.Dot(RemCon.WorldMatrix.Forward);
float YawInput = RemCon.RotationIndicator.Y;foreach (IMyGyro gyro in gyroList)
{

 

gyro.GyroOverride = true;
gyro.Yaw = YawInput;
gyro.Roll = RollInput;
gyro.Pitch = PitchInput;
}
}
Не забываем назвать блок удалённого управления RemCon, и установить контролер и гироскоп параллельно осям друг друга.
Для теста используйте один гироскоп, потом количество для надобности можно увеличить.
Профит юзаем)!

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *