AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моделирование и конструирование

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2019, 15:25   #401
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Конечно хуки.
Без хуков 3До в окне простого редактора не соберётся.
На нахер вар_класс.
Только Property.set(class1.
Я всегда исправляю, что бы Ил не сходил с ума от разночтений в коде.
Vasya вне форума   Ответить с цитированием
Старый 15.10.2019, 11:14   #402
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Вопрос

У меня большая прозьба:
нужно организовать ручное управление радиатором при автомате шага.
Такой вид кода не компилится.
Код:
public void onAircraftLoaded()
    {
        super.onAircraftLoaded();
        if(super.FM.isPlayers())
            ((FlightModelMain) (super.FM)).EI.engines[0].setControlRadiatorAuto(false);        
    }
Как правильно записать ручное управление радиатором?
При том, что в классе уже есть метод радиатора.
Код:
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 вне форума   Ответить с цитированием
Старый 15.10.2019, 21:21   #403
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Василий, я не специалист и у нас разные компиляторы-декомпиляторы, но постараюсь помочь.
Первое, у меня не компилировался код с двумя методами управления чем либо, створки юбки капота, или масляный радиатор, управляющие поверхности, не важно. Метод управления для данной части должен быть один.
Вот как на Ки-30 (на скрине).
Требуется уточнение, для каких частей системы охлаждения мотора нужна анимация? К примеру на Гамма-5 или R-5 есть анимация только масляного радиатора. Вот пример выдвижного радиатора Р-5
Код:
    
    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);
	}
Миниатюры
Нажмите на изображение для увеличения
Название: Новый рисунок.jpg
Просмотров: 370
Размер:	249.2 Кб
ID:	62572  
tvister вне форума   Ответить с цитированием
Старый 15.10.2019, 21:35   #404
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Вот пример Ки-51, у этой модели анимированы и створки юбки капота и масляный радиатор.
Код:
    
    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 вне форума   Ответить с цитированием
Старый 15.10.2019, 22:28   #405
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
По умолчанию

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

Последний раз редактировалось Vasya; 15.10.2019 в 22:39.
Vasya вне форума   Ответить с цитированием
Старый 15.10.2019, 23:15   #406
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
У меня другой вопрос:
нужно заставить работать радиатор именно в ручном режиме.,
сейчас радиатор в автоматическом режиме.,
Увы Василий, я немножко разобрался с анимацией, но более высокие материи мне не по плечу .
Коллеги, может кто, что дельное подскажет?
tvister вне форума   Ответить с цитированием
Старый 15.03.2021, 09:27   #407
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

Цитата:
Сообщение от ildar Посмотреть сообщение
Вопрос к знатокам:

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

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

Asura вне форума   Ответить с цитированием
Старый 17.03.2021, 10:54   #408
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

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

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

public float h;
public float d;

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

в классе КП

private RotatingRadarGeneric rrg;

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

rrg.h
rrg.d

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

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

Asura вне форума   Ответить с цитированием
Старый 28.03.2021, 13:07   #409
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

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

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

public class RotatingRadarGeneric extends NewRadarGeneric

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

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

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

Asura вне форума   Ответить с цитированием
Старый 28.03.2021, 13:19   #410
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

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

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

public class RotatingRadarGeneric extends NewRadarGeneric

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

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

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

Asura вне форума   Ответить с цитированием
Старый 28.03.2021, 15:15   #411
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

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

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

Asura вне форума   Ответить с цитированием
Старый 28.03.2021, 17:39   #412
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

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

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

Asura вне форума   Ответить с цитированием
Старый 15.10.2021, 22:04   #413
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Доброго времени суток! Вопрос к знатокам...
Вот класс "Либерти", кораблик с тремя световыми эффектами которые включаются в ночное время суток. Подскажите пожалуйста как добавить еще один эффект, работающий постоянно, не зависимый от времени?
Код:
/* 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 вне форума   Ответить с цитированием
Старый 16.10.2021, 13:27   #414
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Еще бы хорошо, к коду в предыдущем посте, кроме постоянно работающего эффекта, добавить строки вращающегося меша. Подскажите как сделать плз.
tvister вне форума   Ответить с цитированием
Старый 16.10.2021, 14:08   #415
andrey65
Модератор
 
Аватар для andrey65
 
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,001
Отправить сообщение для andrey65 с помощью ICQ
По умолчанию

В БАТ есть объекты сигнальные маяки, как раз вращаются, светят в две стороны
andrey65 вне форума   Ответить с цитированием
Старый 16.10.2021, 16:52   #416
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Спасибо за идею, но видимо плохо ищу... чего то не могу найти. За то вскрыл мод паровозов от wcat, с крутящимися колесами и... С явой в общем у меня проблемы. Разбираемся...
tvister вне форума   Ответить с цитированием
Старый 16.10.2021, 17:31   #417
andrey65
Модератор
 
Аватар для andrey65
 
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,001
Отправить сообщение для andrey65 с помощью ICQ
По умолчанию

https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву.
andrey65 вне форума   Ответить с цитированием
Старый 16.10.2021, 21:24   #418
tvister
Местный
 
Аватар для tvister
 
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
По умолчанию

Cпасибо, мод скачал, буду разбираться.
tvister вне форума   Ответить с цитированием
Старый 24.10.2021, 13:41   #419
tarakan67
Местный
 
Регистрация: 15.09.2008
Сообщений: 2,178
По умолчанию

Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи.
tarakan67 вне форума   Ответить с цитированием
Старый 25.10.2021, 09:35   #420
Asura
Модератор
 
Аватар для Asura
 
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,799
По умолчанию

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 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:52. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru