|
|
|
#401 |
|
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,363
|
Конечно хуки.
Без хуков 3До в окне простого редактора не соберётся. На нахер вар_класс. Только Property.set(class1. Я всегда исправляю, что бы Ил не сходил с ума от разночтений в коде. |
|
|
|
|
|
#402 |
|
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,363
|
У меня большая прозьба:
нужно организовать ручное управление радиатором при автомате шага. Такой вид кода не компилится. Код:
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);
}
|
|
|
|
|
|
#403 |
|
Местный
Регистрация: 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);
}
|
|
|
|
|
|
#404 |
|
Местный
Регистрация: 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);
}
|
|
|
|
|
|
#405 | |
|
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,363
|
Цитата:
Мне не анимация нужна. Анимацию я вписывать немного умею - несколько створок заставить двигаться - не проблема. У меня другой вопрос: нужно заставить работать радиатор именно в ручном режиме., сейчас радиатор в автоматическом режиме., пропеллер тип-8(лучше - конечно - тип 7, так будет оригиналнее)., у Фоки-4-8 нет раздела анимации створок, поэтому радиатор ручной., у Фоки-9 есть в классе код анимации, поэтому шаг автоматический., для Темпеста нужно заставить кодом работать радиатор в ручном режиме при автомате винта, а они увязаны в коде в глубинах классов. Если поставить шаг винта ручной - то и радиатор будет ручной. Но.... у мотора Темпеста обороты 3700 и винт весом 225 кг. При сбросе газа самолёт переворачивается и устремляется к земле, никакие манипуляции русом не помогают, только добавление тяги до 100 проц. Это такой баг в игре - сильно большие обороты - не стандартные для Ила. В дефолте обороты снизили до 3150, что бы не было бага переворачивания самолёта. Поэтому и спрашивал тут как вписать принудительное регулирование радиатора именно кодом в классе. Есть код на тип афтербуннера - и он работает. Причём тип и название афтербуннера пишется двумя разными методами и они прекрасно уживаются в одном классе. Такие пояснения относительного моего вопроса.
Последний раз редактировалось Vasya; 15.10.2019 в 22:39. |
|
|
|
|
|
|
#406 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
|
|
|
|
|
|
#407 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
Не совсем понятен вопрос... Что конкретно надо сделать?
|
|
|
|
|
|
#408 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
тут сложный вопрос - как разделить однотипные объекты?
В общем наверно можно в КП читать параметры с объектов (например высоту и удаленность) и после сортировки их выводить на экран. то есть в RotatingRadarGeneric ты создаешь переменные public float h; public float d; эти переменные внутри класса меняются у каждого объекта по своему в классе КП private RotatingRadarGeneric rrg; и читаешь переменные из класса rrg.h rrg.d остается вопрос - как распознать чьи это переменные? наверно можно при создании объекта генерить его уникальный код и передавать так же в КП |
|
|
|
|
|
#409 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
А если попробовать сделать так -
Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric public class RotatingRadarGeneric extends NewRadarGeneric и в нем заполнять массив класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания. |
|
|
|
|
|
#410 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
А если попробовать сделать так -
Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric public class RotatingRadarGeneric extends NewRadarGeneric и в нем заполнять массив класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания. |
|
|
|
|
|
#411 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
А наследником ActorHMesh сделать класс КП. Изменить иерархию.
|
|
|
|
|
|
#412 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
Я бы все таки попробовал сделать по аналогии классов тех же маяков - поменять иерархию наследования.
|
|
|
|
|
|
#413 |
|
Местный
Регистрация: 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);
}
}
|
|
|
|
|
|
#414 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Еще бы хорошо, к коду в предыдущем посте, кроме постоянно работающего эффекта, добавить строки вращающегося меша. Подскажите как сделать плз.
|
|
|
|
|
|
#415 |
|
Модератор
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,640
|
В БАТ есть объекты сигнальные маяки, как раз вращаются, светят в две стороны
|
|
|
|
|
|
#416 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Спасибо за идею, но видимо плохо ищу...
чего то не могу найти. За то вскрыл мод паровозов от wcat, с крутящимися колесами и... С явой в общем у меня проблемы. Разбираемся...
|
|
|
|
|
|
#417 |
|
Модератор
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,640
|
https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву. |
|
|
|
|
|
#418 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Cпасибо, мод скачал, буду разбираться.
|
|
|
|
|
|
#419 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи. |
|
|
|
|
|
#420 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
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) |
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|