Звичайна людина на Землі
Регистрация: 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);
}
Последний раз редактировалось Vasya; 27.07.2020 в 20:32.
|