|
|
|
|
|
#1 |
|
Модератор
Регистрация: 05.11.2007
Адрес: Кемеровская область
Сообщений: 7,639
|
https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву. |
|
|
|
|
|
#2 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Cпасибо, мод скачал, буду разбираться.
|
|
|
|
|
|
#3 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи. |
|
|
|
|
|
#4 |
|
Модератор
Регистрация: 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) |
|
|
|
|
|
#5 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
К сожалению не получилось. Меш просто пропадает и всё. Хочу пояснить: я пытаюсь сделать анимацию отката рампы на Ан-26 на внешнем виде. Посмотрев реализацию сдвига фонаря на других самолётах увидел, что везде используется оператор вида:
Aircraft.xyz[1] = Aircraft.cvt((аргумент0)f, (аргумент1)F, (аргумент2)F, (аргумент3)F, (аргумент4)F); Можете объяснить значения этих аргументов? Правильно ли я делаю, используя переменную cvt? При попытке использовать Ваш код эклипс ругается на отсутствие переменной setNew |
|
|
|
|
|
#6 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
Ну мой код не надо было прям копировать.
Это был просто пример реализации. Я подозреваю что меш не пропадает, он просто очень сильно сдвигается. Оперировать надо сотыми долями при сдвиге.Конструкция cvt работает следующим образом (на примере сдвига фонаря): resetYPRmodifier(); Aircraft.xyz[1] = Aircraft.cvt(f, 0.01F, 0.99F, 0.0F, 0.55F); hierMesh().chunkSetLocate("Blister1_D0", Aircraft.xyz, Aircraft.ypr); Aircraft.xyz[1] или Aircraft.xyz[0] или Aircraft.xyz[2] - ось по которой будет происходить сдвиг дальше можно расшифровать так - при значениях F от 0.01 до 0.99 установить значение Aircraft.xyz[1] (т.е. сдвинуть) от 0.0 до 0.55 оператор cvt устанавливает значение переменной в зависимости от другой переменной используя диапазон изменений. переменная фонаря изменяется от 0 (закрыт) до 1 (открыт) при этом значения положения меняются плавно от 0 к 1. с помощью CVT положение меша меняется плавно от 0 до 0.55, то есть происходит визуальное открытие фонаря. |
|
|
|
|
|
#7 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Спасибо! Всё получилось.
|
|
|
|
|
|
#8 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Опять у меня залипуха с Ан-26 (точнее с его рампой). В оригинальном моде открытие рампы "завязано" на управление воздушным тормозом (moveAirBrake). Но тогда у ботов десантирование людей и грузов происходит "сквозь рампу", то есть она(рампа) при десантировании ботами не открывается(откатывается). Я попробовал "привязать" управление рампой на управление створками бомболюка (moveBayDoor). Почти получилось, теперь боты при десантировании исправно открывают и закрывают рампу, но не устраивают два момента:
1. Откат рампы происходит очень быстро, можно ли каким либо образом увеличить время отката (хотя бы вдвое)? 2. У самолёта игрока нет блокировки срабатывания кнопки "сброса бомб"(сброса десантников или груза) при закрытых "створках бомболюка"(рампы). То есть если игрок нажимает кнопку"оружие 4" рампа открывается автоматически и после десантирования половины десантников так же автоматически закрывается и оставшиеся десантники прыгают сквозь рампу. Можно это как то поправить? Ну и ещё хотелось бы сохранить звук работы гидравлики открытия\закрытия рампы, потому что после "перепривязки" звук исчез. Если у Вас, уважаемый Asura, найдутся время и желание объяснить "чайнику" нюансы java-кода, прошу помочь мне справиться с этими проблемами. Последний раз редактировалось tarakan67; 17.11.2021 в 18:39. |
|
|
|
|
|
#9 | |||
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
Цитата:
private float bcurpos ; if (FM.CT.BayDoorControl < 0.5f) { bcurpos -= 0.2F * f; if(bcurpos < 0.0F) bcurpos = 0.0F; } else { bcurpos += 0.2F * f; if(bcurpos > 1.0F) bcurpos = 1.0F; } это вставить в public void update(float f), ту да же вставить код сдвигания рампы. protected void moveBayDoor(float f) не используется. Это не рабочий код - это пример возможной реализации. Скорость открытия можно регулировать изменением множителя bcurpos -= 0.2F * f; Цитата:
Цитата:
|
|||
|
|
|
|
|
#10 | |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Цитата:
protected void moveBayDoor(float f), то скорость открытия не изменяется. Если же удалить код открытия рампы из protected void moveBayDoor(float f), равно как и закоментить этот оператор, то рампа вообще не открывается. |
|
|
|
|
|
|
#11 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
Вот так с ходу сложно придумать какой нибудь "замедлитель". Скорость открывания есть только у блистера. Как вариант само движение повесить на код открывания кабины и в нем ручками устанавливать открыт бомболюк или нет FM.CT.BayDoorControl = 0 или 1 для управления - можно бросать десант или нет.
|
|
|
|
|
|
#12 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Уважаемые коллеги прошу помощи. Вот класс корабля с ходовыми огнями, выделено черным, которые включаются ночью. Что и где нужно прописать что бы добавить эффект работающий круглосуточно?
Код:
/* Old_Gunboat - 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 Old_Gunboat extends Ship
{
/*synthetic*/ static Class class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets;
public static class Koreyets extends BigshipGeneric implements TgtShip
{
public LightPointActor light1;
public LightPointActor light2;
public LightPointActor light3;
public LightPointActor light4;
public LightPointActor[] lightk;
public Koreyets() {
lightk = new LightPointActor[5];
}
public Koreyets(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.Sun().ToSun.z < -0.15F) {
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("_GLight"), 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$Old_Gunboat$Koreyets == null
? (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets
= class$("com.maddox.il2.objects.ships.Old_Gunboat$Koreyets"))
: class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets);
}
}
|
|
|
|
|
|
#13 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Здравствуйте. Подскажите, какой класс или переменная отвечает за измерение истинной скорости(та, которая отображается на виде без кабины)?
|
|
|
|
|
|
#14 |
|
Модератор
Регистрация: 28.02.2007
Адрес: Тула, Россия
Сообщений: 1,892
|
Если нужны цифровые значения то можно так:
spd = (int)(3.6f*Pitot.Indicator((float)World.getPlayerF M().Loc.z, World.getPlayerFM().getSpeed())*0.1f)*10; tas = (int)(3.6f*World.getPlayerFM().getSpeed()); Если для прибора то так (для американцев): mesh.chunkSetAngles("Z_Speed_1", 0.0F, floatindex(cvt(Pitot.Indicator((float) fm.Loc.z, fm.getSpeedKMH()) * 1.131F, 74.07994F, 1222.31894F, 0.0F, 14F), speedometerScale), 0.0F); mesh.chunkSetAngles("Z_Speed_2", 0.0F, floatindex(cvt(fm.getSpeedKMH() * 1.131F, 74.07994F, 1222.31894F, 0.0F, 14F), speedometerScale), 0.0F); или для наших: mesh.chunkSetAngles("zTAS", 0.0F, floatindex(cvt(fm.getSpeedKMH(), 400F, 1100F, 0.0F, 2.0F), tasScale), 0.0F); mesh.chunkSetAngles("zSpeed", 0.0F, floatindex(cvt(Pitot.Indicator((float)fm.Loc.z, fm.getSpeedKMH()), 0.0F, 750F, 0.0F, 14F), speedometerScale), 0.0F);
__________________
Их восемь — нас двое. Расклад перед боем Не наш, но мы будем играть! Серёжа! Держись, нам не светит с тобою, Но козыри надо равнять. © В. Высоцкий __________________ Последний раз редактировалось Asura; 30.05.2022 в 09:22. |
|
|
|
|
|
#15 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Спасибо! Всё получилось.
|
|
|
|
|
|
#16 |
|
Местный
Регистрация: 15.09.2008
Сообщений: 2,225
|
Здравствуйте. Интересуют классы радиомаяков системы слепой посадки. Хочу сделать дальность срабатывания курсового и глиссадного маяков разными. Сейчас оба маяка начинают "перемещать планки" на приборе на расстоянии 35 км от них. В реальности глиссадный радиомаяк имеет дальность действия 18-20 км в отличие от курсового с дальностью до 48 км. Если не затруднит, подскажите, куда копать?
|
|
|
|
|
|
#17 |
|
Местный
Регистрация: 06.12.2016
Сообщений: 168
|
Подскажите пожалуйста. Согласно этому
https://www.patrulla-azul.com/FreeIL...php?f=45&t=311 руководству добавил в БАТ стационарник. Вроде получилось, самолет в игре есть, в миссиях появляется. Первый блин не комом. Но покоя нет. В БАТ папке vehicles/planes кроме классов вида Plane$A6M_21.class например, какие создались у меня снова в конечной папке, есть еще просто A6M_21.class. Они не создались. Вопрос. А что это за доп классы? Они нужны? Инструкция то не очень новая. Может чего поменялось? |
|
|
|
|
|
#18 |
|
Пытающийся полететь
|
Классы со знаком "Аля доллар" в названии это типа внутренние классы внутри самого основного класса. В зависимости от кода в основном классе они могут создаваться, а могут и не создаваться при компиляции(ещё от среды компиляции зависит). Это я так все упрощённо описал. Каждый конкретный случай очень индивидуален. Мне кажется, что если скомпилировался основной клас без классов " Аля доллар" в названии и при этом все работает, то не заморачивайтесь, не мешайте работать игре. Это уж если все коряво работает, тогда уже и будете изучать "Аля внутренние" классы, в чем я и сам не силен.
__________________
Даёшь защищенный онлайн и Свободный оффлайн. Теперь я и в телеграмме: https://t.me/il_2_1946 Последний раз редактировалось carsmaster; 13.02.2025 в 15:36. |
|
|
|
|
|
#19 |
|
Местный
Регистрация: 12.04.2009
Сообщений: 5,104
|
это надо в спец раздел по ФМ выносить ... такие данные то.
__________________
ищется идейный Программер ) |
|
|
|
|
|
#20 |
|
Местный
Регистрация: 26.12.2013
Адрес: Донецьк Україна
Сообщений: 1,848
|
Доброго времени суток.
Пробую создать класс для Ки-36 "Ида", на основе Д3А "Вэл". Для этого все меши созданной модели Ки-36 проименовал как в Д3А1. Постараюсь описать процесс занудно-подробно, может кому то пригодится. Все желающие приглашаются к обсуждению. Открыл классы Д3А1, скомпилировались два файла материнский Д3А и дочерний Д3А1. Классы Ки-36 тоже открылись образовав три файла, материнский Ки-36Х и дочерние Ки-36 и Ки-36NS. Класс Ки-36NS пока удалил, позже изменю и перепишу его как Ки-55. Класс Д3А переписал, заменив в названии и содержимом файла на Ки-36М (материнский). У "Вел" и "Иды" имеются важные различия в работе подвижных частей: 1. У Вел одна сдвижная часть блистера, у Иды три, причем первая и вторая части движутся разно направленно (на встречу друг дружке). 2. Вел, самолет авианосного базирования, у него складываются законцовки крыльев и есть посадочный крюк-гак. У Иды ничего этого нет. 3. Вел - пикирующий бомбардировщик, у него в отличии от Иды есть воздушные тормоза. 4. У Иды створки радиатора не регулирующиеся, у Вел для регулирования охлаждающего потока воздуха есть "юбка". 5. У Иды, стрелок-наблюдатель должен в обычном полете находиться лицом вперед, в боевой обстановке разворачиваться, и открывать блистер. 6. Есть вопросы по прочности планера Иды, есть моменты по вооружению. Постараемся все эти вопросы решить. Для наглядности буду приводить фрагменты кода. Последний раз редактировалось tvister; 30.03.2019 в 09:12. |
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|