А как? Стандартной "J" разделяются и бытовой и приборный отсеки. Или это автоматом по программе проходит. А исходники мона глянуть? И как их компилировать/прикручивать к орбитеру?Сообщение от Bloodest
А как? Стандартной "J" разделяются и бытовой и приборный отсеки. Или это автоматом по программе проходит. А исходники мона глянуть? И как их компилировать/прикручивать к орбитеру?Сообщение от Bloodest
Разделять (и назаначать другое управление) мона любой доступной (не перекрывающей основное управление) клавишей.
Но лучшее по прядку.
Инструментарий -
Программирование - MS Visual C++ (шестерка).
3D - 3DStudio Max или GMAX (урезанная версия) + плагин экспортер в msh файлы (выложен в хранилище и представляет собой достаточно простой текстовый скрипт). Лучше всего 3DStudio Max 5.1 (работает с DDS текстурами + экспортер под него протестирован).
Текстуры - (на любителя) например фотошоп + плагин работы с DDS. Но можно и в паинте (а dds формировать уже в Максе). Я просто все рисую (для других игрух, к этой еще не приступал) в Максе, включая текстуры.
Основной процесс работы сима в части КЛА
1. Читается сэйв-миссия
---------------------
...
BEGIN_SHIPS
....
LOK:n1lok
STATUS Orbiting Moon
RPOS -746023.21 -468658.19 -1557484.59
RVEL -1510.495 -13.994 682.152
AROT 177.70 -11.70 -22.75
PRPLEVEL 0:0.996
NAVFREQ 588 598
XPDR 0
CONFIGURATION_LOK 0
END
...
END_SHIPS
--------------------------------
LOK:n1lok - имя КЛА в симе и имя его конфигурационного файла.
Соответственно смотрим n1lok.cfg
------------------------------------------
ClassName = n1lok
Module = lok
Size = 5
------------------------------------------
Если такая запись есть, то для управления этим КЛА используется самопальная dll, здесь lok.dll.
Это простая dll, содержащая до дюжины функций обратного вызова (ОВ) (четыре из них обязательные - остальные имеют заглушки). В SDK все доходчиво написано.
Про разделение. Одной из функций ОВ является обработчик клавиатуры. Ставим на J изменение глобальной переменной
----------------------------------------------
DLLCLBK int ovcConsumeKey (VESSEL *vessel, const char *keystate)
{
if (KEYMOD_SHIFT (keystate))
{
return 0; // shift combinations are reserved
}
else if (KEYMOD_CONTROL (keystate))
{
// insert ctrl key combinations here
}
else
{ // unmodified keys
if (KEYDOWN (keystate, OAPI_KEY_J)) { // "Jettison Stage"
if (oapiAcceptDelayedKey (OAPI_KEY_J, 1.0))
bManualSeparate = true;
return 1; }
if (KEYDOWN (keystate, OAPI_KEY_O)) { // "Auto doking"
if (oapiAcceptDelayedKey (OAPI_KEY_O, 1.0))
if(!bDoking)
{
bDoking=true;
mode =0;
}
else mode =-1;
return 1;
}
}
return 0;
}
-----------------------------------------------------------
дaльше (на О) у меня идет обработчик стыковки
Собственно разделение начинается в другой функции ОВ - вызываемой при каждом шаге времени сима
--------------------------------------------------------
DLLCLBK void ovcTimestep (VESSEL *vessel, double simt)
{
if (stage == 0)
{
if (bManualSeparate)
{
SeparateStage (vessel, stage);
bManualSeparate=false;
stage = 3; //1;
}
if (bDoking) AutoDoking(vessel, simt);
}
}
--------------------------------------------------------------
Проверяем наличие изменения этой глобальной переменной если да то вызываем самопальную подпрограмму или пишем тут же
-----------------------------------------------------------
void SeparateStage (VESSEL *vessel, UINT stage)
{
VESSELSTATUS vs2;
VECTOR3 ofs2 = _V(0,0,-(5.13-0.795+0.255-2.6)-(2.6-1.75));
VECTOR3 vel2 = _V(0,0,0);
vessel->GetStatus (vs2);
if (stage == 0)
{
vel2 = _V(0,0, -0.5);
}
VECTOR3 rofs2, rvel2 = {vs2.rvel.x, vs2.rvel.y, vs2.rvel.z};
vessel->Local2Rel (ofs2, vs2.rpos);
vessel->GlobalRot (vel2, rofs2);
vs2.rvel.x = rvel2.x+rofs2.x;
vs2.rvel.y = rvel2.y+rofs2.y;
vs2.rvel.z = rvel2.z+rofs2.z;
if (stage == 0)
{
vs2.vrot.x = 0.0;
vs2.vrot.y = 0.0;
vs2.vrot.z = 0.0;
oapiSetFocusObject (oapiCreateVessel ("LOK-ZOND", "n1lok_re", vs2));
SetLOK_Serv_Module (vessel);
//SetReentryStage (vessel);
stage = 3;////////////////////////
}
}
--------------------------------------------------------
Вся начальная часть требуха задающая начальное положение и скорости разделившихся частей.
собственно разделение
oapiCreateVessel ("LOK-ZOND", "n1lok_re", vs2) - создает (пряпо как сэйв) новый КЛА с именем LOK-ZOND , конфигурационным файлом "n1lok_re" и начальными положениями в пространстве vs2. oapiSetFocusObject переносит гамера в новый КЛА.
А теперь главное - в любом месте ветки, идущей от ovcTimestep можно вызвать последовательность инструкций
vessel->ClearMeshes();
vessel->ClearMesh();
vessel->AddMesh ();
то есть стереть/добавить любую часть. Естественно ЛОК состоит из минимум трех 3D сеток (Блок И, СА, БО). Дык
SetLOK_Serv_Module (vessel); это иделает, она все стирает и заново рисует только БО.
В принципе возникает вопрос а почему у меня на БО отсреливается от ЛОК и остается как ЛОК, а не наоборот. Дык БО пристыкован к ЛК и если сохранять ЛОК не как БО а как Зонд, то возникают трудности в сохранении связки БО-ЛК (она должна тормозится и падать на Луну) - не хотят они стыковатся,надо код дописывать к ЛК, а так прикольно получается и из ЛК видно что БО пристыкован, а не просто так мандула висит) и при ударе о луну они отлетают друг от друга (фича сима, которую используют для написания выходов в космос и прогулок по луне)при минимальных затартах на кодирование.
Крайний раз редактировалось Bloodest; 22.07.2004 в 05:42.
На первом идет автоматическая стыковка (пока много побочных бяк), посему надо дорабатывать (на отладочной строке режим в котором работает автомат - невилирование скорости сближения, далее дистанция, скорость, ускорение и требуемая скорость сближения).
На втором БО+ЛК и ЛОК-ЗОНД. Кстати здесь в отладке видна ЛРК - это блок Д (лежащий на Луне ) все еще подает отладочный сигнал от системы управления спуском. Интересный эффект, поскольку dll КЛА работает, в отличии от МФД независимо от фокуса ввода, можно, например, наблюдать работу ЛОК по стыковке находясь в ЛК.
www.orbitersim.com что-то ссылка не пашет у меня, мож кто прямой линк альтернативный даст на скачивание дивайса???
You see, in this world there's two kinds of people, my friend: Those with loaded guns and those who dig. You dig." (c) The Good, The Bad And The Ugly
to =FPS=Zloy
http://mirror.fscentre.com/orbiter/
люди а мануал на русском есть? перевели таки или нет?
Спасибо огромное!!!
You see, in this world there's two kinds of people, my friend: Those with loaded guns and those who dig. You dig." (c) The Good, The Bad And The Ugly
Для ветеранов "Кон-Тики" -
http://www.geocities.com/levinkirill/Kon-Tiki
Подробное описание, реконструкция и азы небесной механики.
Я вот не пойму, а почему нельзя к Марсу лететь когда он находится на нашей стороне от Солнца? Этож самый короткий путь.
Опять же, непонятно все таки как прально летать к внутреним планетам, по прямому пути? Как в туториале по Аполлонам?
2Cruiser
А расскажи, как пользуешься Trans-X при перелёте к Луне и к Земле.
Ну как к Луне по орбите Гомана, а вот обратно на Землю по туториалу я понял что это и есть Direct path.
К внутренним планетам (и с Луны в принципе) я нашел как лететь с точностью до наоборот как к внешним. Т.е. не разгоняемся в перигее а тормозим (как мне самому это в голову не приходило).
Вот. Сразу загорелся проектом Меркурий.
Еще мне совсем не понятно как эту "рогатку" делать (slignshot) отталкиваясь от Юпитера. Требуется качественный перевод мануала по ТрансХ а не от промта коверканого. Раньше пугало что долго пилить, но оказалось что есть модуль для гиперпрыжка настраиваемого.
Мот зря встреваю, однако Inter Planetary MFD почти по всем статьям обходит TransX (единственно на нем не всегда получается корректировать орбиту относительно базы на планете до входа в гравитационное поле планеты и из него убрали гравитационные маневры при пролете планеты). Однако если вошел - то полнейший набор информации и тулзов (один из них на первом рисунке - слева TransX - справа IP - map функция ) Дык сверху вниз
Наклонение орбиты (относительно целевой, ее можно поменять, в данном случае эклиптика, круговая)
-Растояние перицентра
-Скорость в перицентре
-Высота перицентра
-Текущий эксцентриситет орбиты
-Время работы двигателей при запуске в перицентре для образовния целевой орбиты
-Время подлета до восходящего узла относительно плоскости целевой орбиты. Отмечен белым квадратом - здесь орбита подхода выбрана неправильно - узел за перицентром и сменить плоскость без особых трудностей не получится - начнет сползать высота перицентра)
- текущее наклонение
- время работы двигателя для изменения плоскости.
Есть и вторая страница - там информация о положении перицентра относительно поверхности орбиты (широта, долгота и пр.)
Используя такой арсенал можно с пол тыка получить нужную орбиту.
А грав маневр убрали потому как он требует значиительных вычислений вне орбитра с помощь спец оптимизационных программ.
Зы А для полета на Марс по прямой надоть не ДГ а нечто вроде Виспуччи + подкрутить в нем штоб движок был супер-гипер, потому как надоть скорость набрать и потом сбросить (я думаю километров 300 в секунду).
ЗЫЗЫ На фронте Н1 нарисовал и присобачил (пока кое как) первую ступень (на втором рисунке лежит отдельно), добавил струи (400 метров длиной )и напустил дыму (третий). Сегодня закончил вторую и начал третью). Рисую сразу вариант Л7 (предыдущие ведь..) Так что пуск будет в 75 году (думаю май) и будет Л10.
/*Уж если наглеть, то по полной программе! */
2 Bloodest - А исходники можно глянуть? И сценарий тестовый выложить с новой Н1? И подробнейшее описание - что надо делать, на какие кнопки в какой последовательности надо нажимать, что происходит в этот момент?
Вообще всё интересует. Для такого старого романтика как я, никакая мелочь лишней не будет!
Ну о-очень интересно!
Ну дык смотри рисунок - страшное еще сырье. Я думаю, что мот к октябрю-ноябрю что и будет. А собирать инсталяху весьма долгая трабла. Я таскаю (дом (суб-вс) <-> работа (2 часа после работы-> домашние не мешают)) на флешке все целиком. В сентебре пойду в отпуск и между походами за грибами думаю здорово продвинутся.Сообщение от SgSS
А исходники пожалуйста (zip).
ЛОК
autodocking.cpp
lok.cpp
lok_re.cpp
n1bis_Eva2LoLOK.cpp
ЛК
lk.cpp
n1bis_leva.cpp
Н1
n1.cpp
ЛРК-ЛК+БД
N1bis_LRK.cpp
N1bis_LRK_GUIDANCE.cpp
Дык внутри видно, что надергано с миру по нитке и например, в космос ходит не СССР а мериканец, поскольку все меши заимствованы из NASSP и код от туда -> надоть свой кречет малевать.
Доброго вам времени суток, люди.
Набрёл на енту ветку вчера. Скачал сабж и знаете что? Затянуло по самое небалуйся)))
Одно плохо - рускоязычного сайта нет, надо учить инглиш(доучивать), а заодно и С++. Хоцца янтарь на орбиту вывести.
Игрушка мас хэв, без вариантов. А заодно и celestia сюда же для поддержания отмосферности.
Это всё эмоции..... )))
Господа, если не в лом подскажите плиз - у меня такая беда, скачал несколько дополнений(штук 30), в том числе несколько лунных и "земных" баз. Так вот, при установке мода с какой-либо базой предлагают добавить в файл Earth.cfg новую строку с координатами этой самой базы. Добавляю. Запускаю. Вылетаю. В ХР-ень. Процесс однообразен и бесконечен, и так все моды с базами. У меня начинается паника.
Да, Орбитер капризен в плане дополнений, надо много руками прописывать. У меня все через раз работает, закономерностей не выявил до сих пор.
Очень часто мод не является самостоятельным,он использует части других модов (или инсталяха не полная) - надо внимательно изучить инструкцию, поискать патчи к моду, тем не менее обнаружить наличие недостающих частей можно - орбитер создает их в виде пустых файлов с нужным названием. Сотри все пустые файлы в каталогах config, meshes, modules, textures, sound. Запусти, если опять появились пустышки, тогда будет явно чего не хватает.Сообщение от Peresmeshnik
Вот, нашел подробнейший русский перевод описания TransX MFD.
Залил на сайт listok.amillo.net - Качать всем!
Крайний раз редактировалось listok; 28.08.2004 в 07:50.
Люди, поможите! Не работает РУД в обитере ни в какую. На elite-games ничего не смогли посоветовать, мож кто сталкивался с такой бедой?
Come, fly the teeth of the wind...
Share my wings
У меня тож не работает
Это просто супер нужный труд.Сообщение от listok
Спасибо автору!
А вот решил я попробовать Interplanetary Multi-Function Display (IMFD) и чего то нифига не понимаю. Интуитивно не понятный он. Сижу даже с мануалом не осилить.
Кстати, что за Celestia такая? Я несколько раз встречал на сайтах но не понял что это.
http://sourceforge.net/projects/celestia/
типа планетарий
Управлять видами там не проще чем Ортитером рулить
Новая версия вышла.
По отзывам немного сыровата, но качать стоит.
Да вообще качать стоит!!!!!