|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Создаете класс Участок, в нем заводите свойства для всех возможных элементов, всего что может быть на участке — дом, сарай, туалет, баня, забор, колодец, беседка, бассейн, клумба, грядка(массив грядок), сад(массив деревьев), водопровод и т.д. Изначально значения свойств null, затем пользователь в редакторе будет добавлять/перемещать/удалять элементы, и свойства соответственно заполняются. Для каждого элемента естественно тоже создается свой класс — базовый, определяющий общий тип (Дом, например) и его визуальные подклассы (коттедж, избушка и т.п.). Свойства Участка имеют базовый тип (public var house:House), а заполняются конкретными подклассами (plan1.house = new Cottage(); ). Сами элементы конечно хранят необходимые свойства — координаты на участке и размеры занимаемой площади, какие-то собственные варианты (цвет покраски, текстура и т.п.), положение калиток в заборе, может быть ID в массиве всех вариантов домов.
Для сохранения делаете сериализацию — считываете все необходимые свойства всех элементов и сохраняете в подходящем формате. Потом из него же считываете данные и воспроизводите все элементы.
Добавлено через 7 минут
Если хочется бОльшей свободы и расширяемости, то Участок может хранить не отдельные свойства для каждого элемента (что не позволит сделать три дома, например), а один массив всех элементов. Но тогда возникнут всякие сложности именно с доступом к этим отдельным элементам (решаемые, конечно)).
|