Наследование атрибутов
Stranded 3 имеет возможность наследовать атрибуты. Это полезно для ленивых людей, которые хотят определить одинаковые объекты с небольшими отличиями.
Например:
virtual=tree category=Trees
define object=palmtree01 extends=tree name=Palmtree model=res:palmtree01
define object=bluetree extends=palmtree01 name=Blue Palmtree model_color=blue
"virtual" определяет виртуальный объект. Определяя виртуальный объект, мы его сможем использовать позже в определениях, указывая в атрибуте "extends", это позволяет расширить атрибуты описанные в виртуальном объекте на новый созданный объект. Это означает, что он будет наследовать все атрибуты от другого объекта , и вы тогда сможете добавить / изменить атрибуты у нового созданного объекта.
строка extends=tree тоже самое что category=Trees, потому что виртуальный объект "tree" содержит только одну строку.
extends=palmtree01 примет все строки из определения palmtree01 и внедрит их в объект "bluetree". Так BlueTree в основном тот же объект, "palmtree01" только с другим именем и другим атрибутом model_color (и другим идентификатором , конечно) .
Вы также можете наследовать атрибуты сразу от нескольких объектов. Stranded 3 предупредит вас в случае, если вы наследуете от того же объекта несколько раз ( это может произойти прямо и косвенно . Например, вы наследуете атрибуты дерева два раза , если вы добавите строку extends=tree в "BlueTree", потому что это уже расширяет palmtree01 которые сам уже содержит атрибут дерева! ) . Кроме того Stranded 3 определяет глубину иерархии наследований и отменяет бесконечные циклы наследования с подробными предупреждениями, чтобы избежать вылетает в случае неправильных определений ;)
Автоматическая генерация миникарты
Я просто взял цвета от генератора миникарты Stranded 3 и вот результат . Я также немного улучшил окно " Управление ландшафтом".
Перемещение и вращение объектов
Теперь в редакторе можно перемещать и вращать любой объект с помощью мыши. Там же есть кнопка для установки начального угла поворота для новых объектов и заполнения местности с кнопкой объектов. Также определены клавиши клавиатуры для перемещения и вращения и для открыть свойств / удаления объектов.
Оригинал: http://stranded3.com/?p=119
Комментарий Devi409:
Допилки и доработки и улучшение функционала разработки. Система наследования очень практична и используется в объектно ориентированном программировании везде где только программист это может, если конечно он знает о ней :). Но по сути пример который показал Peter не очень наглядный. Попытаюсь более подробно пояснить: Допустим у нас есть объект дерево, предмет палка и предмет - оружие лук. Все три предмета имеют схожие атрибуты материал = дерево плавает на воде = да горит = да
вот теперь представьте что нам нужно описать один объект и два предмета в конфигурационном файле. пришлось бы делать как то так:
Пальма{
материал = дерево
плавает на воде = да
горит = да
}
Палка{
материал = дерево
плавает на воде = да
горит = да
}
Лук{
материал = дерево
плавает на воде = да
горит = да
}
Не правда ли достаточно объемный код? Ну а теперь попробуем тоже самое сделать с системой наследования.
Создадим виртуальный объект
виртуальный{
материал = дерево
плавает на воде = да
горит = да
}
а теперь опишем объект и два предмета
Пальма{
наследуем = виртуальный
}
Палка{
наследуем = виртуальный
}
Лук{
наследуем = виртуальный
}
намного проще и короче. Тем более что к строке "наследуем = виртуальный" вы можете добавлять еще новые атрибуты которые будут характеризовать уже каждый объект, предмет более детально.
Источник: http://stranded3.com/?p=119 |