AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > У природы нет плохой погоды.

Важная информация

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.02.2013, 02:30   #2
ZloyPetrushkO
Местный
 
Регистрация: 31.05.2008
Сообщений: 1,159
По умолчанию

немножко текста для мододелов.

Концепция следующая:
Вынесение всех вычислений касательно атмосферы в отдельный класс. Трудоемкие вычисления выносятся в отдельную dll с названием atmcom.dll, написанную на С++. Например: ветер можно реализовать как скалярное поле давлений или же векторное поле скоростей; спутный след и т.д. Пересчет будет производится в atmcom.dll, Atmosphere.class будет выступать посредником между игрой и atmcom.dll.
Архитектура выполнена открытой и модульной: при необходимости каждый желающий может изменить необходимый модуль. В некоторых случаях, потребуется изменение других модулей. К моду прилагаются исходники. corep4.dll и zpdll.dll не имеют исходников, т.к. выполнены на ассемблере. Поэтому при внесении изменений в atmcom.dll или классы игры рекомендуется сохранять совместимость с данными dll-ками. Atmospehre.class напрямую не взаимодействует с данными длл-ками. Atmcom.dll взамодействует напрямую. Поэтому для сохранения работоспособности нельзя нарушать адресацию и параметры функций, к которым обращается zpdll.dll. Например, нельзя: добавлять новые глобальные переменные, менять порядок этих функций, а так же параметры вызова. В atmcom.dll специально оставлены свободные глобальные переменные.

Описание схемы(см. вложение)
Принцип работы следующий.
При запуске(инициализации) игра вызывает Atmosphere.set(..) и Wind.set(…), который вызывает Atmosphere.set2(…), в котором рассчитываются и выставляются необходимые параметры атмосферы для java-class'a, а так же вызывается atmcom.dll/setatmparam, в котором рассчитываются и выставляются необходимые параметры в atmcom.dll. Установленные параметры используются при последующих расчетах.
Во время расчета в реальном времени игра вызывает RealFlightmodel.update(), который вызывает Atmosphere.update(). Этот метод выполняет следующий функционал: вызывает обновление при каждом тике atmcom.dll/updateatm(..) и обновление с заданной частотой (раз в какой-то время, по умолчанию задано 30 сек) вызывает пересоздание облаков командой Mission.cur().createClouds().
Метод atmcom.dll/updateatm(..) выполняет обновление всех необходимых парамтеров, в т.ч. по умолчанию перерасчет смещения deltaX.
Пересоздание облаков командой Mission.cur().createClouds() запускает сложный процесс в dll-ках игры, в том числе расчет координат в il2_corep4.dll. Полученные координаты облака перехватываются, передаются при помощи zpdll.dll в atmcom.dll/cloudx(),который вызывает atmcom.dll/updatecloudx(), где далее производится расчет новых координат и отправка обратно. По умолчанию, к текущей координате облака прибавляется смещение deltaX.
Вложения
Тип файла: rar atm_scheme.rar (10.0 Кб, 789 просмотров)

Последний раз редактировалось ZloyPetrushkO; 17.03.2013 в 22:33.
ZloyPetrushkO вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:54. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru