|
Регистрация | Справка | Пользователи | Социальные группы | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
01.04.2019, 15:25 | #401 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,122
|
Конечно хуки.
Без хуков 3До в окне простого редактора не соберётся. На нахер вар_класс. Только Property.set(class1. Я всегда исправляю, что бы Ил не сходил с ума от разночтений в коде. |
15.10.2019, 11:14 | #402 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,122
|
У меня большая прозьба:
нужно организовать ручное управление радиатором при автомате шага. Такой вид кода не компилится. Код:
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); } |
15.10.2019, 21:21 | #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); } |
15.10.2019, 21:35 | #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); } |
15.10.2019, 22:28 | #405 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,122
|
Цитата:
Мне не анимация нужна. Анимацию я вписывать немного умею - несколько створок заставить двигаться - не проблема. У меня другой вопрос: нужно заставить работать радиатор именно в ручном режиме., сейчас радиатор в автоматическом режиме., пропеллер тип-8(лучше - конечно - тип 7, так будет оригиналнее)., у Фоки-4-8 нет раздела анимации створок, поэтому радиатор ручной., у Фоки-9 есть в классе код анимации, поэтому шаг автоматический., для Темпеста нужно заставить кодом работать радиатор в ручном режиме при автомате винта, а они увязаны в коде в глубинах классов. Если поставить шаг винта ручной - то и радиатор будет ручной. Но.... у мотора Темпеста обороты 3700 и винт весом 225 кг. При сбросе газа самолёт переворачивается и устремляется к земле, никакие манипуляции русом не помогают, только добавление тяги до 100 проц. Это такой баг в игре - сильно большие обороты - не стандартные для Ила. В дефолте обороты снизили до 3150, что бы не было бага переворачивания самолёта. Поэтому и спрашивал тут как вписать принудительное регулирование радиатора именно кодом в классе. Есть код на тип афтербуннера - и он работает. Причём тип и название афтербуннера пишется двумя разными методами и они прекрасно уживаются в одном классе. Такие пояснения относительного моего вопроса. Последний раз редактировалось Vasya; 15.10.2019 в 22:39. |
|
15.10.2019, 23:15 | #406 |
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
|
15.03.2021, 09:27 | #407 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
Не совсем понятен вопрос... Что конкретно надо сделать?
|
17.03.2021, 10:54 | #408 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
тут сложный вопрос - как разделить однотипные объекты?
В общем наверно можно в КП читать параметры с объектов (например высоту и удаленность) и после сортировки их выводить на экран. то есть в RotatingRadarGeneric ты создаешь переменные public float h; public float d; эти переменные внутри класса меняются у каждого объекта по своему в классе КП private RotatingRadarGeneric rrg; и читаешь переменные из класса rrg.h rrg.d остается вопрос - как распознать чьи это переменные? наверно можно при создании объекта генерить его уникальный код и передавать так же в КП |
28.03.2021, 13:07 | #409 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
А если попробовать сделать так -
Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric public class RotatingRadarGeneric extends NewRadarGeneric и в нем заполнять массив класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания. |
28.03.2021, 13:19 | #410 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
А если попробовать сделать так -
Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric public class RotatingRadarGeneric extends NewRadarGeneric и в нем заполнять массив класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания. |
28.03.2021, 15:15 | #411 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
А наследником ActorHMesh сделать класс КП. Изменить иерархию.
|
28.03.2021, 17:39 | #412 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
Я бы все таки попробовал сделать по аналогии классов тех же маяков - поменять иерархию наследования.
|
15.10.2021, 22:04 | #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); } } |
16.10.2021, 13:27 | #414 |
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Еще бы хорошо, к коду в предыдущем посте, кроме постоянно работающего эффекта, добавить строки вращающегося меша. Подскажите как сделать плз.
|
16.10.2021, 14:08 | #415 |
Модератор
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,347
|
В БАТ есть объекты сигнальные маяки, как раз вращаются, светят в две стороны
|
16.10.2021, 16:52 | #416 |
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Спасибо за идею, но видимо плохо ищу... чего то не могу найти. За то вскрыл мод паровозов от wcat, с крутящимися колесами и... С явой в общем у меня проблемы. Разбираемся...
|
16.10.2021, 17:31 | #417 |
Модератор
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,347
|
https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву. |
16.10.2021, 21:24 | #418 |
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Cпасибо, мод скачал, буду разбираться.
|
24.10.2021, 13:41 | #419 |
Местный
Регистрация: 15.09.2008
Сообщений: 2,205
|
Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи. |
25.10.2021, 09:35 | #420 |
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,850
|
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) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|