![]() |
Цитата:
|
Генеришь точку и она движется с самолетом. Отдал ее в ракету как параметр и она осталась в ракете.
|
Та все эти идеи пройденный этап :(
Суть в другом: Все эти заморочки с точкой на поверхности могу не дать результата нужного. Вот если б сделать все правильно и прописать код, который бы генерировал луч, и потом еще один код, который бы генерировал точку в месте пересечения луча и поверхности, вот это было б правильно, а потом можно было б подумать как поворачивать этот луч с помощью клавиш как на С-25 например или через камеру в кабине стрелка. Но я подозреваю, что для этого нужны немалые математические знания, потому как ничего хоть бы и отдаленно похожего в иле я не встречал. Может конечно искал плохо. |
Разбирай прожектор ПВО. Делай меш тонюсенький... Я когда-то разбирал хотел сделать посадочный и маяк береговой. Но там было плохо, он светит, только когда на него смотришь, а тут может и прокатит, ведь луч и имеет смысл когда на него смотрят... луч это меш однозначно.
|
Еще порылся, и мне кажется, что ответ кроется в Посадочных огнях:
Engine.land(); if (Landscape.rayHitHQ(lLightP1, lLightP2, lLightPL)) это в классе Aircraft.class но теперь нужно понять, как это использовать. И потом как заставить хук луча поворачиваться вместе с мешем. ну и потом придумать, как собственно поворачивать сам меш. Вот собственно: for (int i = 0; i < 4; ++i) /* 2043 */ if (this.FM.AS.astateLandingLightEffects[i] != null) { /* 2044 */ lLightLoc1.set(0.0D, 0.0D, 0.0D, 0.0F, 0.0F, 0.0F); /* 2045 */ this.lLightHook[i].computePos(this, _tmpLoc, lLightLoc1); /* 2046 */ lLightLoc1.get(lLightP1); /* 2047 */ lLightLoc1.set(1000.0D, 0.0D, 0.0D, 0.0F, 0.0F, 0.0F); /* 2048 */ this.lLightHook[i].computePos(this, _tmpLoc, lLightLoc1); /* 2049 */ lLightLoc1.get(lLightP2); /* 2050 */ Engine.land(); if (Landscape.rayHitHQ(lLightP1, lLightP2, lLightPL)) { /* 2051 */ lLightPL.z += 1.0D; /* 2052 */ lLightP2.interpolate(lLightP1, lLightPL, 0.95F); /* 2053 */ this.lLight[i].setPos(lLightP2); /* 2054 */ float f1 = (float)lLightP1.distance(lLightPL); /* 2055 */ float f2 = f1 * 0.5F + 30.0F; /* 2056 */ float f3 = 0.5F - (0.5F * f1 / 1000.0F); /* 2057 */ this.lLight[i].setEmit(f3, f2); /* */ } else { /* 2059 */ this.lLight[i].setEmit(0.0F, 0.0F); /* */ } /* */ } Далеко не все понимаю. Очень бы пригодились разьясниния. |
Делать турель-указатель. Кардан с мешем луча.
|
дальнемер с этого можно создать, что бы сщупал землю, ведь его-то и поворачивать не нужно ?
|
Цитата:
А собственно что тут полезного? Тут используются УСТАНОВЛЕННЫЕ элементы с существующими координатами, а ты хотел генерировать координаты. |
Ну я так понял, что есть хук, и оно берет этот хук как начальную точку для "луча" и там есть, как я понял, дальность:
lLightLoc1.set(1000.0D, 0.0D, 0.0D, 0.0F, 0.0F, 0.0F); и после этого оно генерирует координаты на точке ландшафта в которой проходит этот "луч", и в этом месте создает меш света посадочных фар. Я думаю, что можно заставить его создавать в этом месте "точку", которую можно будет использовать как цель для ракеты. Если я правильно понял, то в этом месте оно выдает нужные координаты: this.lLight[i].setPos(lLightP2); при lLightP2.interpolate(lLightP1, lLightPL, 0.95F); Потом можно было б поработать над тем, что б потом заставить этот хук "апдейтиться" в реальном времени, и вращаться вместе с мешем турели например. В чем моя проблема, так это в том, что я не могу разобрать этот код до конца в обратном порядке. |
Цитата:
Если разобрать этот код до конца, то можно будет и создать вращающиеся прожекторы, например для поиска субмарин с какого-нибудь веллингтона и тп. |
Концепция работает:
Удалось переделать код, и теперь мы имеем точку в которой луч "лазера" пересекается с ландшафтом, плюс мы видим эту точку визуально в виде эффекта лампочки от посадочных огней. Следующий шаг научиться двигать этот луч, а точнее меш, в котором находиться хук, с помощью клавиш (с помощью мыши буду пробовать потом). Может кто видел похожий код где-то? Или есть свои идеи, буду очень признателен. |
Цитата:
Получится ли научить ракету наводиться на сгенерированную светящуюся точку на поверхности, или ей пофиг какая это точка, лишь бы она была ? Цитата:
|
Короче теперь нужно заставить хук апдейтиться при повороте меша, в котором этот хук находиться.
Есть идеи? На счет того, что б показывало дальность можно организовать без проблем думаю, но делать 3д работу в кабине мне лень. Можно просто текстовым сообщением сделать. Ракете пофиг на что наводиться, главное правильно это все закодировать, что б ракета следила за позицией точки а реальном времени. |
Вложений: 1
Цитата:
|
Та я знаю, но это легко сказать)))
|
угу, хотя думаю создать по крайней мере визуальную часть в кокпите будет возможно (поковырявшись в прицеле Ф-86 и HUD на каком-то японском самолете, уже не помню каком), если удасться увязать все в java :)
|
Очень мудрённые вещи пишете, но ооочень нужные. Будем очень ждать результата.
И ещё - вот если бы кто примудрил как вставить в 4.12.2 мод Та-183 с самонаводящимися ракетами Х4 и Х7., этот прекрасный мод(- http://www.sas1946.com/main/index.php/topic,7012.0.html -) работает только в 4.10.1, а очень хотелось бы его пользовать в последующих патчах. Извините, если не в тему, но так как вы понимаете в кодах, то отважился высказать свои пожелания/прозьбу. |
Цитата:
Но с работой, универом, подготовкой к НГ и тп, времени очень мало. Минимум на сейчас, это заставить хук поворачиваться вместе с мешем, ну и потом что б ракета летела куда нужно, а то все потом. |
УРА!!
Луч двигаеться))) Теперь нужно приручить ракету и вуаля)) |
покажи пару картин, как оно работает. Думается что это пока что-то подобное лазерной указке? :)
|
Текущее время: 23:45. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot