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

Цитата:
Сообщение от Dimas1999 Посмотреть сообщение
Так вроде же в БАТе сборка с моими классами не работала, по логам понял,
что не нравится код для ограничения перемещений 6DoF.
Я его закомментировал. Из-за этого камера может слишком сильно
переместиться и пройти сквозь текстуры (теоретически).
Насколько я помню, ранее для БАТа требовался фикс от Васи, где классы
были закомпилированы в среде на основе 4.12.2.
6DoF я оставлял. Дописывал импорт.
И ещё в классах кокпитов код некоторых приборов исправлял.
Например.
Код:
package com.maddox.il2.objects.air;

import com.maddox.JGP.*;
import com.maddox.JGP.Point3d;
import com.maddox.JGP.Tuple3d;
import com.maddox.JGP.Tuple3f;
import com.maddox.JGP.Vector3f;
import com.maddox.il2.ai.World;
import com.maddox.il2.engine.*;
import com.maddox.il2.fm.*;
import com.maddox.rts.*;

public class CockpitYAK_1 extends CockpitPilot
{
    class Interpolater extends InterpolateRef
    {

        public boolean tick()
        {
            if(fm != null)
            {
                setTmp = setOld;
                setOld = setNew;
                setNew = setTmp;
                setNew.throttle = (10F * setOld.throttle + ((FlightModelMain) (fm)).CT.PowerControl) / 11F;
                setNew.prop = (10F * setOld.prop + ((FlightModelMain) (fm)).EI.engines[0].getControlProp()) / 11F;
                setNew.altimeter = fm.getAltitude();
                if(Math.abs(((FlightModelMain) (fm)).Or.getKren()) < 30F)
                    setNew.azimuth = (35F * setOld.azimuth + ((FlightModelMain) (fm)).Or.azimut()) / 36F;
                if(setOld.azimuth > 270F && setNew.azimuth < 90F)
                    setOld.azimuth -= 360F;
                if(setOld.azimuth < 90F && setNew.azimuth > 270F)
                    setOld.azimuth += 360F;
                setNew.vspeed = (199F * setOld.vspeed + fm.getVertSpeed()) / 200F;
                setNew.mix1 = 0.8F * setOld.mix1 + 0.2F * fm.EI.engines[0].getControlMix();
            }
            return true;
        }

        Interpolater()
        {
        }
    }

    private class Variables
    {
        float mix1;
        float throttle;
        float prop;
        float altimeter;
        float azimuth;
        float vspeed;

        private Variables()
        {
        }
    }

    protected void setCameraOffset()
    {
        super.cameraCenter.add(0.019999999552965164D, 0.0D, 0.0D);
    }

    public CockpitYAK_1()
    {
        super("3DO/Cockpit/Yak-1/hier.him", "bf109");
        setOld = new Variables();
        setNew = new Variables();
        w = new Vector3f();
        pictAiler = 0.0F;
        pictElev = 0.0F;
        light1 = new LightPointActor(new LightPoint(), new Point3d(-0.44750000000000001D, 0.3392D, 0.31190000000000001D));
        light2 = new LightPointActor(new LightPoint(), new Point3d(-0.33810000000000001D, 0.28420000000000001D, 0.27179999999999999D));
        light3 = new LightPointActor(new LightPoint(), new Point3d(-0.1656D, 0.20100000000000001D, 0.21079999999999999D));
        light4 = new LightPointActor(new LightPoint(), new Point3d(-0.44750000000000001D, -0.3392D, 0.31190000000000001D));
        light5 = new LightPointActor(new LightPoint(), new Point3d(-0.33810000000000001D, -0.28420000000000001D, 0.27179999999999999D));
        light6 = new LightPointActor(new LightPoint(), new Point3d(-0.1656D, -0.20100000000000001D, 0.21079999999999999D));
        light1.light.setColor(245F, 221F, 189F);
        light2.light.setColor(245F, 221F, 189F);
        light3.light.setColor(245F, 221F, 189F);
        light4.light.setColor(245F, 221F, 189F);
        light5.light.setColor(245F, 221F, 189F);
        light6.light.setColor(245F, 221F, 189F);
        light1.light.setEmit(0.0F, 0.0F);
        light2.light.setEmit(0.0F, 0.0F);
        light3.light.setEmit(0.0F, 0.0F);
        light4.light.setEmit(0.0F, 0.0F);
        light5.light.setEmit(0.0F, 0.0F);
        light6.light.setEmit(0.0F, 0.0F);
        super.pos.base().draw.lightMap().put("LAMPHOOK1", light1);
        super.pos.base().draw.lightMap().put("LAMPHOOK2", light2);
        super.pos.base().draw.lightMap().put("LAMPHOOK3", light3);
        super.pos.base().draw.lightMap().put("LAMPHOOK4", light4);
        super.pos.base().draw.lightMap().put("LAMPHOOK5", light5);
        super.pos.base().draw.lightMap().put("LAMPHOOK6", light6);
        super.cockpitNightMats = (new String[] {
            "prib_one", "prib_two", "prib_four", "prib_five", "shkala", "prib_one_dd", "prib_two_dd"
        });
        setNightMats(false);
        interpPut(new Interpolater(), null, Time.current(), null);
        super.limits6DoF = (new float[] {
            0.7F, 0.055F, -0.07F, 0.11F, 0.15F, -0.11F, 0.04F, -0.025F
        });
    }
Vasya вне форума   Ответить с цитированием