Показать сообщение отдельно
Старый 23.02.2012, 23:54   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Как реализовать открытую архитектуру? (плагины, расширения и т.п.)

Небольшое описание что в моём представлении может быть плагином:
Предположим есть приложение, редактор уровней. Само приложение имеет открытый API - набор функций, которые в плагинах можно использовать. Например через эти функции можно получить доступ к определённому объекту в мире, его параметрам, и манипулировать им (ну это самые простые примеры). Также API имеет интерфейс по работе с GUI редактора (создавать окошки, кнопочки и т.п.).
Далее этот API доступен в виде библиотеки.
Каждый плагин имеет две функции Load и Unload.
При включении приложения (или другом событии), для каждого плагина вызывается Load функция, и при закрытии Unload соответственно.

Далее пример плагина - чтобы имел кнопку с удалением всех объектов определённого типа. В функции Load мы создаём панельку, и пихаем её куданить в редакторе, это проделываем через GUI API предоставленным редактором. Далее пишем уже логику для своего созданного GUI, в нашем случае одна кнопка, при нажатии на которую, используя API, мы найдём все объекты например типа "персонаж", и удалим их снова используя API.

Получается что подключая этот плагин, он создаст панельку с кнопкой, которая будет удалять определённого типа объекты со сцены мира в редакторе.

Пример простейший. Но думаю понятен достаточно.

Говоря о Blitz3D, не заморачивайся. Я рекомендую даже и не пытаться начинать что-то делать такого рода на блице - ты потратишь в пустую кучу времени, а результат если и будет, то весьма скудный.
Такие вещи проще делать на OOP языках, напримерв .Net такое сделать вообще сказка, и намного сложнее, хотя бы основываясь возможности использования объектов между ассемблями (библиотека содержит не тупо список функций, а полноценные классы и т.п.), также есть рефлекция - это для плагинов ваще сказка.

В общем, на Blitz3D, не советую заморачиваться о таких вещах, он убог.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Dzirt (24.02.2012), HolyDel (24.02.2012), Mr_F_ (24.02.2012)