RailUnion.net


http://railunion.net/blog/kemal/sme_library_b-93_sid-eeb9733d5fe8ec1df3cf21723953a51c.html

Автор:  kemal [ 12.10.2010, 21:30 ]
Тема блога:  sme_library

Очень часто при скриптовании ПС бывает нужно описать свойства всего поезда, а не отдельно взятого вагона. Но вот незадача, в Траинзе не существует пользовательского объекта, который бы был наследником класса Train. Проще говоря, скриптовать мы можем только отдельные вагоны, а не поезда целиком. Ну ладно, раз так, то придётся всё то, что мы собирались реализовывать в MyTrain, реализовать в MyVehicle. Хорошо, допустим реализовали. Но какой из вагонов должен это считать? Ведь будет очень не хорошо если, например, два вагона будут дёргать контроллер каждый в свою сторону. Делать "самый умный" вагон, каждый из которых будет опрашивать всех подряд, тоже не хорошо. Надо бы сделать централизацию. Вот для этого я и задумал sme_library. Это будет либа (одна на всх), которая будт следить за составами и вагонами в них, реагировать на сцепку/расцепку и упростит передачу данных между вагонами, объединёнными в СМЕ.
Всё это здорово, осталось только реализовать)) И вот тут я задумался, а как же это сделать? Например объект "СМЕ" должен иметь список вагонов, чтобы знать кому рассылать сообщения, а объект "вагон" должен ссылаться на СМЕ. Получается, что один из классов должен содержать свойство тип которого описан позже. Большинство языков такого не переваривают, GameScript в их числе. Как быть?



{ BLOG_REPLIES }

Автор:  ALEX007 [ 06.08.2011, 05:41 ]

Какие из языков програмирования не переваривают? Сделай список, а я посмотрю мабуть что и присоветую.

Автор:  Эрендир [ 22.11.2011, 10:12 ]

Для реализации СМЕТ вообще нафиг не нужно делать одельную библиотеку и заниматься рассылкой каких либо сообщений. Твой вариант из серии "Как бы мне всё усложнить".

Автор:  kemal [ 02.02.2012, 02:35 ]

Эрендир, согласен с тобой, что в таком виде оно ведёт к усложнению. Как пример - в реальности никаких объединяющих библиотек нет и всё работает. Но толи я чего-то недопонимаю в СМЕ, толи действительно без внешнего вмешательства всё не разрулить... Вобщем, заскриптовать вагон у меня не получилось.
ALEX007, имелась в виду такая ситуация:
Код: Выделить всё
class sme{
 MyVehicle[] Vehicles;
}
class MyVehicle{
 sme MyTrain;
}

или наоборот:
Код: Выделить всё
class MyVehicle{
 sme MyTrain;
}
class sme{
 MyVehicle[] Vehicles;
}

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

Часовой пояс: UTC + 4 часа

Powered by phpBB © 2002, 2006 phpBB Group
www.phpbb.com

Blogs powered by User Blog Mod © EXreaction
www.lithiumstudios.org