Показать сообщение отдельно
Старый 29.05.2020, 01:06   #2794
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,085
По умолчанию

Цитата:
Сообщение от Leopard Посмотреть сообщение
Василь, будь ласка, выложи архив с ФМ и классами, который можно просто положить в папку фримодинговых корсаров и наслаждаться
Пожалуйста!
Код:
public void update(float f)
    {
        boolean flag = false;
        FM.setGCenter(Aircraft.cvt(FM.getSpeedKMH(), 0.0F, 240F, -10.5F, 0.0F));
        float f1 = FM.CT.getAirBrake();
        if(Math.abs(pictVBrake - f1) > 0.001F)
        {
            pictVBrake = f1;
            resetYPRmodifier();
            Aircraft.xyz[2] = Aircraft.cvt(pictVBrake, 0.0F, 1.0F, 0.0F, 0.525F);
            for(int i = 1; i < 10; i++)
                hierMesh().chunkSetLocate("Flap0" + i + "A_D0", Aircraft.xyz, Aircraft.ypr);

            flag = true;
        }
        f1 = FM.CT.getAileron();
        if(Math.abs(pictAileron - f1) > 0.01F)
        {
            pictAileron = f1;
            flag = true;
        }
        f1 = FM.CT.getRudder();
        if(Math.abs(pictRudder - f1) > 0.01F)
        {
            pictRudder = f1;
            flag = true;
        }
        f1 = FM.CT.getElevator();
        if(Math.abs(pictVator - f1) > 0.01F)
        {
            pictVator = f1;
            flag = true;
        }
        if(flag)
        {
            for(int j = 0; j < 9; j++)
            {
                float f2 = -60F * pictVBrake * (fcA[j] * pictAileron + fcE[j] * pictVator + fcR[j] * pictRudder);
                hierMesh().chunkSetAngles("Flap0" + (j + 1) + "B_D0", f2, 0.0F, 0.0F);
            }

            hierMesh().chunkSetAngles("AroneC_D0", 0.0F, 45F * pictAileron, 0.0F);
            hierMesh().chunkSetAngles("AroneL_D0", 0.0F, 45F * pictAileron, 0.0F);
            hierMesh().chunkSetAngles("AroneR_D0", 0.0F, 45F * pictAileron, 0.0F);
            hierMesh().chunkSetAngles("Rudder1_D0", 34F * pictRudder, 0.0F, 0.0F);
            hierMesh().chunkSetAngles("VatorL_D0", -34F * pictVator, 0.0F, 0.0F);
            hierMesh().chunkSetAngles("VatorR_D0", 34F * pictVator, 0.0F, 0.0F);
            hierMesh().chunkSetAngles("RFlap01_D0", 60F - 60F * pictVBrake, 0.0F, 0.0F);
            hierMesh().chunkSetAngles("RFlap02_D0", -60F + 60F * pictVBrake, 0.0F, 0.0F);
            hierMesh().chunkSetAngles("RFlap03_D0", -60F + 60F * pictVBrake, 0.0F, 0.0F);
            hierMesh().chunkSetAngles("RFlap04_D0", 60F - 60F * pictVBrake, 0.0F, 0.0F);
        }
        if(FM.AS.astateBailoutStep > 1)
        {
            if(pictBlister < 1.0F)
                pictBlister += 3F * f;
            hierMesh().chunkSetAngles("Blister2_D0", -110F * pictBlister, 0.0F, 0.0F);
        }
        float f4 = FM.EI.getPowerOutput() * Aircraft.cvt(FM.getSpeedKMH(), 0.0F, 600F, 2.0F, 0.0F);
        if(FM.CT.getAirBrake() > 0.5F)
        {
            if(FM.Or.getTangage() > 5F)
            {
                FM.getW().scale(Aircraft.cvt(FM.Or.getTangage(), 45F, 90F, 1.0F, 0.1F));
                float f3 = FM.Or.getTangage();
                if(Math.abs(FM.Or.getKren()) > 90F)
                    f3 = 90F + (90F - f3);
                float f5 = f3 - 90F;
                FM.CT.trimElevator = Aircraft.cvt(f5, -20F, 20F, 0.5F, -0.5F);
                f5 = FM.Or.getKren();
                if(Math.abs(f5) > 90F)
                    if(f5 > 0.0F)
                        f5 = 180F - f5;
                    else
                        f5 = -180F - f5;
                FM.CT.trimAileron = Aircraft.cvt(f5, -20F, 20F, 0.5F, -0.5F);
                FM.CT.trimRudder = Aircraft.cvt(f5, -15F, 15F, 0.04F, -0.04F);
            }
        } else
        {
            FM.CT.trimAileron = 0.0F;
            FM.CT.trimElevator = 0.0F;
            FM.CT.trimRudder = 0.0F;
        }
        FM.Or.increment(f4 * (FM.CT.getRudder() + FM.CT.getTrimRudderControl()), f4 * (FM.CT.getElevator() + FM.CT.getTrimElevatorControl()), f4 * (FM.CT.getAileron() + FM.CT.getTrimAileronControl()));
        if(FM.EI.engines[1].getStage() == 6)
        {
            ((FlightModelMain) (super.FM)).EI.engines[0].setEngineMomentMax(5254.0F);
            float f2 = 1.0001F * (0.5F * ((FlightModelMain) (super.FM)).EI.engines[0].getw() + 0.5F * ((FlightModelMain) (super.FM)).EI.engines[1].getw());
            ((FlightModelMain) (super.FM)).EI.engines[1].setw(f2);
            ((FlightModelMain) (super.FM)).EI.engines[1].setEngineMomentMax(5254.0F);
        }            
        super.update(f);
    }
Вложения
Тип файла: rar D520_IES--FIX FM.rar (8.8 Кб, 269 просмотров)

Последний раз редактировалось Vasya; 27.07.2020 в 20:32.
Vasya вне форума   Ответить с цитированием