Страница 6 из 11

Re: sim

СообщениеДобавлено: 11.01.2010, 00:57
break
Это лишь один из возможных способов. Другое дело, что в АГС есть методы и поудобнее.

пример можно?

Re: sim

СообщениеДобавлено: 11.01.2010, 01:27
AlexanderG
Клуб из 10 строчек
КЛУБ из 1920 строк, внедряется в кабину десятью. Читай внимательнее.

Ну не верю я что Клуб из 10 строчек будет работать как реальный - К799/800 может?, К0? П, Л
Команды не делал пока, т.к. не решено, нужно ли оно. Но можно сделать.

отработка кривой
Да. Мог видеть на скриншоте из ЭР2т, там 31км\ч горел, все по кривой.

Никто с экспортированными ф-ями не работает - может поэтому все дико отреагировали на ДЛЛ?
Насколько я знаю, ДЛЛ только функции экспортирует. У тебя СОМ что ли?

давай
Даю:
Код: Выделить всё
Hierarchical listing of all Trainz API classes:


AITrainScope
BrowserInterface
CabinControlSetting
CabinData
DefaultSteamCabinData
Command
Constructors
ControlSettingsManager
CustomCommand
AiHornMsg
DriverScheduleCommand
Flags
GSObject
Asset
GameObject
Browser
CabinControl
DriverCommand
DriverCommands
OnlineAccess
OnlineGroup
Scenario
Track
Train
TrainzGameObject
Library
MeshObject
Bogey
Cabin
DefaultLocomotiveCabin
DefaultSteamCabin
MapObject
SceneryWithTrack
Buildable
Industry
BaseIndustry
GenericPassengerStation
BasePortal
GenericIndustry
Crossing
Turntable
Trackside
Junction
Signal
TrackMark
Trigger
Vehicle
Locomotive
ModuleScript
DriverCharacter
ScenarioBehavior
ConditionalScenarioBehavior
HTMLPropertyHandler
BaseIndustryInfo
ConfigAssetHandler
AssetCheckListHandler
CheckListPropertyHandler
RadioButtonListHandler
EnumeratedAssetHandler
EnumeratedGameObjectHandler
EnumeratedPropertyHandler
EnumeratedMultiPropertyHandler
GenericBoolHandler
CheckBoxHandler
GenericIntNumberHandler
GenericStringHandler
ConsistHelperInfo
HTMLPropertyGroup
ConsistListHelper
ConfigAssetGroupHandler
CheckListGroupHandler
RadioButtonGroupHandler
GenericListHandler
TrainHelperInfo
VehicleHelperInfo
LoadHelperInfo
PassengerStationInfo
SpecificVehiclesInfo
DriversInfo
VehicleTypesInfo
VHISpecificVehiclesInfo
VHIDriversInfo
VHIVehicleTypesInfo
IndustryTrainController
KUID
KUIDList
LoadingReport
Menu
Permit
ProductFilter
ProductQueue
Soup
StringTable
TrainTimetable
GSTrackSearch
HTMLWindow
IndustryProcessInfo
IndustryProductInfo
IndustryProductInfoCollection
IndustryProductInfoComplete
IndustryProductInfoProcess
IndustryProductInfoQueues
IndustryProductInfoTracks
Interface
InterfaceAlert
InterfaceObjective
IPICProcess
IPICQueue
IPICTrack
ITCTrainCommand
JunctionBase
Junction
JunctionBaseGameObject
JunctionPermitInfo
LinkedData
LinkedList
Log
LogScope
Math
Message
Navigate
NumberValueInt
PropertyBrowser
PropertyObject
MeshObject
ScenarioBehavior
PropertyValue
Requirement
ResourceRequirement
Router
ScenarioStringTable
ScenarioSupport
Schedule
ScheduleHistoryRec
ShuntTrack
SignalBehaviour
StationBehaviour
Str
Timetable
TimetableState
TrackLoadInfo
TrainTimetableItem
TrainUtil
Trainz
VehicleDescriptor
World
World1

К сожалению, форматирование не переносится, так что получился список.

И через 5 страниц выясняется что все спорили с тем же, чем сами пользуетесь.
Это гипотетический пример. Когда с этой необходимостью реально столкнемся, будем искать более элегантный способ.

Давай по пунктам - это интересно!
У тебя я пока увидел только зайчатки физики. Широты возможностей по настройке объектов на карте, такой, какую я вижу в ТРС, пока не заметил.

Согласен.. Но это возможно при обоих подходах.
Хорошо, такой пример. В АГС я запускаю поток, указав ключевое слово thread в объявлении функции, а в С++?

Re: sim

СообщениеДобавлено: 11.01.2010, 03:54
TRam_
else if (delta < -0.001) // ликвидация сверхзарядки постоянным темпом
m_pResEQ_Vol->setPressure( getEQ_P() - 150*fSec );
нехорошо так... Скорость ликвидации регулируется редуктором...

И через 5 страниц выясняется что все спорили с тем же, чем сами пользуетесь.


раньше пользовались. Теперь нет. Пример:

а) cтарый подход (твой) (описания GetMyPosition и SetCoupler не даю)

Код: Выделить всё
class positiont1
{
public int a;
public Vehicle VF;
public Vehicle VB;
};

   positiont1 GetMyPosition(Train MyTrain)
      {
      //// Возвращет позицию вагона в составе в а
      //// 0   -   одиночный
      //// 1   -   Первый
      //// 2   -   В центре
      //// 3   -   Последний

      //// Возвращает номер вагона в составе в b

      //// обявляем переменные ////
      Vehicle[] TrainVehiclesArray;
      int ArraySize;

      positiont1 result=new positiont1();
      //// ------------------- ////


      TrainVehiclesArray = MyTrain.GetVehicles();      //// получаем массив вагонов в составе

      
      ArraySize = TrainVehiclesArray.size();         //// получаем количестово элементов массива(количество вагонгов в составе)

      
      if (ArraySize == 1)                        //// вагон одиночный
         {
         result.a = 0;
         }
      else if (me == TrainVehiclesArray[0])         //// вагонов больше одного, этот вагон находиться первым в составе
         {
         result.a = 1;
         result.VB=TrainVehiclesArray[1];
         }
      else if (me == TrainVehiclesArray[ArraySize-1])   //// вагонов больше одного, этот вагон находиться в конце состава
         {
         result.a = 3;
         result.VF=TrainVehiclesArray[ArraySize-2];
         }
      else                                 //// вагонов больше одного, этот вагон находиться в центре состава
         {
         result.a = 2;

         int i=2;
         while(i<(ArraySize-1) and me != TrainVehiclesArray[i])
            i++;

         result.VF=TrainVehiclesArray[i-1];
         result.VB=TrainVehiclesArray[i+1];
         }   

      return result;
      
      }



thread void CouplerMonitor(void)
   {
   int   pos;
   Train   MyTrain;
   bool   direction;
   positiont1 position;

   while (1)   // чисто твой подход - перепроверяем каждые 3 секунды, сцеплены ли мсы с соседними вагонами
         {
         MyTrain   = me.GetMyTrain();   
         if (MyTrain != null)      
            {
            direction = me.GetDirectionRelativeToTrain();
            position = GetMyPosition(MyTrain);         
   
            pos = position.a;               
            SetCoupler(pos, direction);            
            
            
            }
         Sleep(3);   //ожидание потоком своей очереди, 3 секунды   
         }

   }


public void Init(void)
      {
      CouplerMonitor();// создание потока
      }


б) новый подход


Код: Выделить всё
void MyPosition(void)
   {

   Train MyTrain=me.GetMyTrain();
   if(MyTrain!=null)
      {
      Vehicle[] TrainVehiclesArray = MyTrain.GetVehicles();
int a=me.GetMyNumber(TrainVehiclesArray);
       int size_of_train=TrainVehiclesArray.size();

      bool direction = (cast<Vehicle>me).GetDirectionRelativeToTrain();


      if(size_of_train==1)   //вагон одиночный
         {
         inFront=null;
         inBack=null;
         SetCoupler(0,direction);
         }
      
      else if(a==0)   //// вагонов больше одного, этот вагон находиться первым в составе
         {
         inFront=null;
         inBack=TrainVehiclesArray[1];
         SetCoupler(1,direction);
         }
      else if(a<(size_of_train-1)) //// вагонов больше одного, этот вагон находиться в центре состава
         {
         inFront=TrainVehiclesArray[a-1];
         inBack=TrainVehiclesArray[a+1];
         SetCoupler(2,direction);
         }
      else             //// вагонов больше одного, этот вагон находиться в конце состава
         {
         inFront=TrainVehiclesArray[size_of_train-2];
         inBack=null;
         SetCoupler(3,direction);
         }
      }
   }


void CoupleHandler(Message msg)   // обработчик сцепления
{
if(msg.src==me)      //мы сцепились
   {
   me.MyPosition();
   }
}


void DecoupleHandler(Message msg)  // обработчик расцепления
{

if(msg.src==me or msg.src==inFront or msg.src==inBack)      //мы, либо соседний вагон, расцепилсись
   {
   me.MyPosition();
   }
}


public void Init(void)
      {

      me.AddHandler(me,"Vehicle","Coupled","CoupleHandler");      //добавление обработчика на сообщение (событие) "Coupled","CoupleHandler"
      me.AddHandler(me,"Vehicle","Decoupled","DecoupleHandler");   //добавление обработчика на сообщение (событие) "Vehicle","Decoupled"

      }




В АГС я запускаю поток, указав ключевое слово thread в объявлении функции, а в С++?




под линуксом как-то так (год назад было, забыл уже...)

(некий поток)
{
fork();
if(ppId()!=0)
{
//инструкции наследнику
}
else
{
//инструкции родителю
}
free();
}


в трс:


объявление функции - "работа наследника"


thread void H(...)
{
//инструкции наследнику
}


(некая внешняя ф-ция либо поток-родитель)
{
H(...);
//инструкции родителю
}

Re: sim

СообщениеДобавлено: 11.01.2010, 04:11
break
нехорошо так... Скорость ликвидации регулируется редуктором...

иди уже читать книжки
Так как истечение воздуха из уравнительного объема в атмосферу происходит все время при постоянном давлении в камере У3, то стабилизатор обеспечивает постоянный темп ликвидации сверхзарядного давления из уравнительного объема.
Темп ликвидации сверхзарядного давления из тормозной магистрали не зависит от наличия и величины утечки из нее.

будет меня учить :-) - это ты говорят супер симулятор тормозов написал? и еще хвастался там какой-то линейностью?


дочитал в исходнике до этой строки
// чисто твой подход - перепроверяем каждые 3 секунды, сцеплены ли мсы с соседними вагонами

и понял - что ты полный ноль - уже доугие ребята поняли что такое Листенер провели аналогию с какими-то вашими полями в Trainz - которые никто по таймеру ни тут ни там не проверяет

Код: Выделить всё
под линуксом как-то так (год назад было, забыл уже...)

(некий поток)
{
fork();
if(ppId()!=0)
{
//инструкции наследнику
}
else
{
//инструкции родителю
}
free();
}


в трс:


объявление функции - "работа наследника"


thread void H(...)
{
//инструкции наследнику
}


(некая внешняя ф-ция либо поток-родитель)
{
H(...);
//инструкции родителю
}

---- и это тоже полный треш

TRam_ - ты выскочка - и меня могут забанить но ты точно ничего не пытаешься тут сделать хорошего или указать на недостатки так как даже не пытаешься понять в деталях о чем идет разговор.

Re: sim

СообщениеДобавлено: 11.01.2010, 04:41
AlexanderG
нехорошо так... Скорость ликвидации регулируется редуктором...

иди уже читать книжки
Да, Вов, иди. Стабилизатором она регулируется. Без обид.

Re: sim

СообщениеДобавлено: 11.01.2010, 12:06
agmike
http://codepaste.ru/2929/
http://codepaste.ru/2930/
http://codepaste.ru/2931/
http://codepaste.ru/2932/
http://codepaste.ru/2933/
http://codepaste.ru/2934/
http://codepaste.ru/2935/
http://codepaste.ru/2936/
http://codepaste.ru/2937/
http://codepaste.ru/2938/
http://codepaste.ru/2939/

Все основное здесь. Приложил АПИ, в нем есть иерархия, правда он 2006 года и немного устарел, но здесь большего не надо: http://narod.ru/disk/16779046000/API.chm.html

break писал(а):
Это лишь один из возможных способов. Другое дело, что в АГС есть методы и поудобнее.

пример можно?

Сообщения. Объект может подписаться на определенные сообщения. При его получении будет вызвана заданная функция. Также любой поток может остановить свое выполнение до получения определенного сообщения.

Re: sim

СообщениеДобавлено: 11.01.2010, 17:19
break
Спасиибо за исходником - буду смотреть.

Сообщения. Объект может подписаться на определенные сообщения. При его получении будет вызвана заданная функция. Также любой поток может остановить свое выполнение до получения определенного сообщения.

Не находишь 100% аналогию с Лисненером?

Re: sim

СообщениеДобавлено: 11.01.2010, 23:07
АЧ2-047
Если почитать форум и лицензионное соглашение к EU07, выяснится, что игра "полусвободная", т.е. на открытом движке, но из неё нельзя "воровать" модели, текстуры и т.п.
количество зубьев на валах

Вот этого нет, зато есть коэффициент отношения оборотов движков к оборотам КП.

Re: sim

СообщениеДобавлено: 12.01.2010, 01:59
break
Если почитать форум и лицензионное соглашение к EU07, выяснится, что игра "полусвободная", т.е. на открытом движке, но из неё нельзя "воровать" модели, текстуры и т.п.

Где ссылка на исходник? Раз ты читал форум на польском (или чешском - я не знаю какая национальность у них) то дай ссылку.
Кроме того что ты называешь движком - есть куча открытых игровых движков, графических движков и т.д. но им до движка "симулятора ПС" очень много работы.

Вот этого нет, зато есть коэффициент отношения оборотов движков к оборотам КП.

Этого недостаточно я сам пытался попробовать такой расчет - нет исходных данных на упомянутый выше коэффициент C(характеризующий некоторые особенности конкретного двигателя ). А вообще формула его расчета состоит из "количество витков", "обмоток" и других параметров двигателя... Даже если умудриться сделать так (а не ломанными линиями как ты их назвал) то надежда на то что кто-то сделает дополнение - свой ПС - будет равна 0! Да и зачем Тяговые характеристики уже в себе содержат всю информацию необходимую для получения силы и тока на якоре. А реостатные характеристики - тока возбуждения. Их придумали ученые для Тяговых Расчетов. Кроме того эти характеристики можно снять самому с Подвижного Состава с помощью например РПДА.

Re: sim

СообщениеДобавлено: 12.01.2010, 10:39
AlexanderG
Даже если умудриться сделать так (а не ломанными линиями как ты их назвал) то надежда на то что кто-то сделает дополнение - свой ПС - будет равна 0!
Я в последнее время нахожу полином, описывающий тяговую характеристику, и силу считаю через него, очень удобно.

Re: sim

СообщениеДобавлено: 31.01.2010, 18:43
SergXcom_
Есть какиенибудь обновления?

Re: sim

СообщениеДобавлено: 06.02.2010, 06:26
BooYa
Простите, я тут может не по адресу. Но вот я 6 страниц прочитал про какой-то неизвестный мне доселе "КЛУБ".....Если несложно, объясните мне пожалуйста, что это такое, жутко любопытно

Re: sim

СообщениеДобавлено: 06.02.2010, 06:58
break
Комплексное Локомотивное Устройство Безопасности (в Google) - идея хорошая (GPS навигация, кривая скорости при приближении к сигналу и ограничениям скорости и т.д.), реализация как всегда далека от идеала по удобству надежности и т.д. Тем не менее этот прибор активно продвигается и ставится вместо 3CЛ2м и других "скоростемеров" на все виды подвижного состава.

А вообще вот отличная статья по локомотивным проборам безопасности http://depositfiles.com/files/77dsw2n4z

Re: sim

СообщениеДобавлено: 02.03.2010, 04:29
break
Изображение

Изображение

Изображение

Изображение

Re: sim

СообщениеДобавлено: 02.03.2010, 17:53
АЧ2-047
Красиво, но расстояние между опорами КС просто огромное.