AviaSkins.Forums

Go Back   AviaSkins.Forums > Основные разделы > Моделирование и конструирование
Register FAQ Community Calendar Today's Posts Search

Notices

Reply
 
Thread Tools Search this Thread Display Modes
Old 01.04.2019, 15:25   #401
Vasya
Звичайна людина на Землі
 
Vasya's Avatar
 
Join Date: 06.11.2011
Location: Україна, м.Київ, Печерський район, вул. Кіквідзе
Posts: 8363
Радость

Конечно хуки.
Без хуков 3До в окне простого редактора не соберётся.
На нахер вар_класс.
Только Property.set(class1.
Я всегда исправляю, что бы Ил не сходил с ума от разночтений в коде.
Vasya is offline   Reply With Quote
Old 15.10.2019, 11:14   #402
Vasya
Звичайна людина на Землі
 
Vasya's Avatar
 
Join Date: 06.11.2011
Location: Україна, м.Київ, Печерський район, вул. Кіквідзе
Posts: 8363
Вопрос

У меня большая прозьба:
нужно организовать ручное управление радиатором при автомате шага.
Такой вид кода не компилится.
Code:
public void onAircraftLoaded()
    {
        super.onAircraftLoaded();
        if(super.FM.isPlayers())
            ((FlightModelMain) (super.FM)).EI.engines[0].setControlRadiatorAuto(false);        
    }
Как правильно записать ручное управление радиатором?
При том, что в классе уже есть метод радиатора.
Code:
public void update(float f)
    {
        if(Math.abs(flapps - kangle) > 0.01F)
        {
            flapps = kangle;
            hierMesh().chunkSetAngles("Oil1_D0", 0.0F, -20F * kangle, 0.0F);
        }
        kangle = 0.95F * kangle + 0.05F * FM.EI.engines[0].getControlRadiator();
        if(kangle > 1.0F)
            kangle = 1.0F;
        afterburnerhud();
        super.update(f);
    }
Vasya is offline   Reply With Quote
Old 15.10.2019, 21:21   #403
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Василий, я не специалист и у нас разные компиляторы-декомпиляторы, но постараюсь помочь.
Первое, у меня не компилировался код с двумя методами управления чем либо, створки юбки капота, или масляный радиатор, управляющие поверхности, не важно. Метод управления для данной части должен быть один.
Вот как на Ки-30 (на скрине).
Требуется уточнение, для каких частей системы охлаждения мотора нужна анимация? К примеру на Гамма-5 или R-5 есть анимация только масляного радиатора. Вот пример выдвижного радиатора Р-5
Code:
    
    public void update(float f) {
	float f_6_ = FM.EI.engines[0].getControlRadiator();
	Aircraft.xyz[0] = 0.0F;
	Aircraft.xyz[1] = 0.0F;
	Aircraft.xyz[2] = f_6_ * -0.45F;
	Aircraft.ypr[0] = 0.0F;
	Aircraft.ypr[1] = 0.0F;
	Aircraft.ypr[2] = 0.0F;
	if (Math.abs(flapps - xyz[2]) > 0.01F) {
	    flapps = xyz[2];
	    hierMesh().chunkSetLocate("Water_D0", Aircraft.xyz, Aircraft.ypr);
	}
Attached Thumbnails
Click image for larger version

Name:	Новый рисунок.jpg
Views:	669
Size:	2492 KB
ID:	62572  
tvister is offline   Reply With Quote
Old 15.10.2019, 21:35   #404
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Вот пример Ки-51, у этой модели анимированы и створки юбки капота и масляный радиатор.
Code:
    
    public void update(float f) {
	super.update(f);
	float f_2_ = FM.EI.engines[0].getControlRadiator();
	if (Math.abs(flapps - f_2_) > 0.01F) {
	    flapps = f_2_;
	    hierMesh().chunkSetAngles("Oil_radiat_D0", 0.0F, -15.0F * f_2_,
				      0.0F);
	    for (int i = 1; i < 11; i++)
		hierMesh().chunkSetAngles("Water" + i + "_D0", 0.0F,
					  22.0F * f_2_, 0.0F);
	}
Причем масляный радиатор не опускается под прямым углом к корпусу как у Р-5, а поворачивается на -15 градусов поперек оси движения самолета.
tvister is offline   Reply With Quote
Old 15.10.2019, 22:28   #405
Vasya
Звичайна людина на Землі
 
Vasya's Avatar
 
Join Date: 06.11.2011
Location: Україна, м.Київ, Печерський район, вул. Кіквідзе
Posts: 8363
Default

Quote:
Originally Posted by tvister View Post
Василий, я не специалист и у нас разные компиляторы-декомпиляторы, но постараюсь помочь.
................
Спасибо за отклик!
Мне не анимация нужна.
Анимацию я вписывать немного умею - несколько створок заставить двигаться - не проблема.
У меня другой вопрос:
нужно заставить работать радиатор именно в ручном режиме.,
сейчас радиатор в автоматическом режиме.,
пропеллер тип-8(лучше - конечно - тип 7, так будет оригиналнее).,
у Фоки-4-8 нет раздела анимации створок, поэтому радиатор ручной.,
у Фоки-9 есть в классе код анимации, поэтому шаг автоматический.,
для Темпеста нужно заставить кодом работать радиатор в ручном режиме
при автомате винта, а они увязаны в коде в глубинах классов.
Если поставить шаг винта ручной - то и радиатор будет ручной.
Но.... у мотора Темпеста обороты 3700 и винт весом 225 кг.
При сбросе газа самолёт переворачивается и устремляется к земле,
никакие манипуляции русом не помогают, только добавление тяги до 100 проц.
Это такой баг в игре - сильно большие обороты - не стандартные для Ила.
В дефолте обороты снизили до 3150, что бы не было бага переворачивания самолёта.
Поэтому и спрашивал тут как вписать принудительное регулирование радиатора именно кодом в классе.
Есть код на тип афтербуннера - и он работает.
Причём тип и название афтербуннера пишется двумя разными методами
и они прекрасно уживаются в одном классе.
Такие пояснения относительного моего вопроса.

Last edited by Vasya : 15.10.2019 at 22:39
Vasya is offline   Reply With Quote
Old 15.10.2019, 23:15   #406
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Quote:
Originally Posted by Vasya View Post
У меня другой вопрос:
нужно заставить работать радиатор именно в ручном режиме.,
сейчас радиатор в автоматическом режиме.,
Увы Василий, я немножко разобрался с анимацией, но более высокие материи мне не по плечу .
Коллеги, может кто, что дельное подскажет?
tvister is offline   Reply With Quote
Old 15.03.2021, 09:27   #407
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

Quote:
Originally Posted by ildar View Post
Вопрос к знатокам:

Как из одного класса запустить другой класс?
Не совсем понятен вопрос... Что конкретно надо сделать?
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Old 17.03.2021, 10:54   #408
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

тут сложный вопрос - как разделить однотипные объекты?
В общем наверно можно в КП читать параметры с объектов (например высоту и удаленность) и после сортировки их выводить на экран.

то есть в RotatingRadarGeneric ты создаешь переменные

public float h;
public float d;

эти переменные внутри класса меняются у каждого объекта по своему

в классе КП

private RotatingRadarGeneric rrg;

и читаешь переменные из класса

rrg.h
rrg.d

остается вопрос - как распознать чьи это переменные? наверно можно при создании объекта генерить его уникальный код и передавать так же в КП
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Old 28.03.2021, 13:07   #409
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

А если попробовать сделать так -

Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric

public class RotatingRadarGeneric extends NewRadarGeneric

и в нем заполнять массив

класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Old 28.03.2021, 13:19   #410
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

А если попробовать сделать так -

Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric

public class RotatingRadarGeneric extends NewRadarGeneric

и в нем заполнять массив

класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Old 28.03.2021, 15:15   #411
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

А наследником ActorHMesh сделать класс КП. Изменить иерархию.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Old 28.03.2021, 17:39   #412
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

Я бы все таки попробовал сделать по аналогии классов тех же маяков - поменять иерархию наследования.
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Old 15.10.2021, 22:04   #413
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Доброго времени суток! Вопрос к знатокам...
Вот класс "Либерти", кораблик с тремя световыми эффектами которые включаются в ночное время суток. Подскажите пожалуйста как добавить еще один эффект, работающий постоянно, не зависимый от времени?
Code:
/* Liberty_cargo_ship - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package com.maddox.il2.objects.ships;
import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.ground.TgtShip;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.il2.engine.HookNamed;
import com.maddox.il2.engine.LightPointActor;
import com.maddox.il2.engine.LightPointWorld;
import com.maddox.il2.engine.Loc;
import com.maddox.rts.SectFile;

public abstract class Liberty_cargo_ship extends Ship
{
    /*synthetic*/ static Class class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty;
    
    public static class Liberty extends BigshipGeneric implements TgtShip
    {
	public LightPointActor light1;
	public LightPointActor light2;
	public LightPointActor light3;
	public LightPointActor light4;
	public LightPointActor[] lightk;
	
	public Liberty() {
	    lightk = new LightPointActor[5];
	}
	
	public Liberty(String string, int i, SectFile sectfile,
			  String string_0_, SectFile sectfile_1_,
			  String string_2_) {
	    super(string, i, sectfile, string_0_, sectfile_1_, string_2_);
	    lightk = new LightPointActor[5];
	    Loc loc = new Loc(0.0, 0.0, 0.0, 0.0F, 0.0F, 0.0F);
	    Loc loc_3_ = new Loc();
	    Loc loc_4_ = new Loc();
	    Loc loc_5_ = new Loc();
	    Loc loc_6_ = new Loc();
	    Loc loc_7_ = new Loc();
	    if (World.getTimeofDay() >= 0.5F && World.getTimeofDay() <= 6.0F) {
		for (int i_8_ = 0; i_8_ < 6; i_8_++)
		    Eff3DActor.New(this, findHook("_CLight" + i_8_), null,
				   1.0F, "3DO/Effects/Lights/FlareWhitek.eff",
				   -1.0F);
		Eff3DActor.New(this, findHook("_GLigth"), null, 1.0F,
			       "3DO/Effects/Lights/FlareGreenkb.eff", -1.0F);
		Eff3DActor.New(this, findHook("_RLight"), null, 1.0F,
			       "3DO/Effects/Lights/FlareRedkb.eff", -1.0F);
                 {
                }   
            }
        }
    }
    
    /*synthetic*/ static Class class$(String string) {
	Class var_class;
	try {
	    var_class = Class.forName(string);
	} catch (ClassNotFoundException classnotfoundexception) {
	    throw new NoClassDefFoundError(classnotfoundexception
					       .getMessage());
	}
	return var_class;
    }
    
    static {
	new BigshipGeneric.SPAWN
	    (class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty == null
	     ? (class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty
		= class$("com.maddox.il2.objects.ships.Liberty_cargo_ship$Liberty"))
	     : class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty);
    }
}
tvister is offline   Reply With Quote
Old 16.10.2021, 13:27   #414
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Еще бы хорошо, к коду в предыдущем посте, кроме постоянно работающего эффекта, добавить строки вращающегося меша. Подскажите как сделать плз.
tvister is offline   Reply With Quote
Old 16.10.2021, 14:08   #415
andrey65
Модератор
 
andrey65's Avatar
 
Join Date: 05.11.2007
Location: Кемеровская область
Posts: 7641
Default

В БАТ есть объекты сигнальные маяки, как раз вращаются, светят в две стороны
andrey65 is offline   Reply With Quote
Old 16.10.2021, 16:52   #416
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Спасибо за идею, но видимо плохо ищу... чего то не могу найти. За то вскрыл мод паровозов от wcat, с крутящимися колесами и... С явой в общем у меня проблемы. Разбираемся...
tvister is offline   Reply With Quote
Old 16.10.2021, 17:31   #417
andrey65
Модератор
 
andrey65's Avatar
 
Join Date: 05.11.2007
Location: Кемеровская область
Posts: 7641
Default

https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву.
andrey65 is offline   Reply With Quote
Old 16.10.2021, 21:24   #418
tvister
Местный
 
tvister's Avatar
 
Join Date: 26.12.2013
Location: Донецьк Україна
Posts: 1848
Default

Cпасибо, мод скачал, буду разбираться.
tvister is offline   Reply With Quote
Old 24.10.2021, 13:41   #419
tarakan67
Местный
 
Join Date: 15.09.2008
Posts: 2225
Default

Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи.
tarakan67 is offline   Reply With Quote
Old 25.10.2021, 09:35   #420
Asura
Модератор
 
Asura's Avatar
 
Join Date: 28.02.2007
Location: Тула, Россия
Posts: 1892
Default

resetYPRmodifier(); - обнулить значения

//установить значение смещения по осям
xyz[0] = 0.4f*setNew.fire;
xyz[1] = 0.4f*setNew.fire;
xyz[2] = 0.4f*setNew.fire;

//установить поворот по посям
ypr[0] = 0.4f*setNew.fire;
ypr[1] = 0.4f*setNew.fire;
ypr[2] = 0.4f*setNew.fire;

mesh.chunkSetLocate("Z_Fire", xyz, ypr); //одновременный поворот и смещение указанного меша на ранее заданные значения. Можно только смещать (YPR просто не указываются) или только вращать (но вращать проще mesh.chunkSetAngles)
__________________
Их восемь — нас двое. Расклад перед боем
Не наш, но мы будем играть!
Серёжа! Держись, нам не светит с тобою,
Но козыри надо равнять.

© В. Высоцкий
__________________

Asura is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +3. The time now is 15:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Рейтинг@Mail.ru