qwyllum
Гость
|
|
« : Май 17, 2013, 23:32 » |
|
Доброго времени суток всем! С-но, встала передо мной небольшая задачка - знакомый попросил написать примитивный редактор уровней. Суть в том, что уровни состоят из многоугольников, которые в дальнейшем будут затекстурированы. Есно задача редактора создавать многоугольники, редактировать и сохранять их координаты в файл. Начал я копать в данном направлении. Вот задача: 1. В редакторе можно создать фигуру(по умолчанию 3,4,5-угольник) 2. Есть режим редактирования объекта и режим редактирования вершин. Выбирается мышью. 2. В режиме редактирования вершин, каждая вершина фигуры доступна для перемещения, после чего фигура изменяется(можно не в реальном времени, а после отпускания мыши) 3. В режиме редактирования объекта, его можно перемещать или вращать 4. В идеале, хотелось бы иметь возможность добавления новых вершин
А теперь вопрос, как это реализовать в теории? На каком уровне работать с объектами? Допустим, отдельную вершину можно сделать классом, наследуемым от QGraphicsItem. Переопределить метод paint(), добавить возможность передвижения мыши. Но как сделать, чтобы все вершины одного элемента соединялись линиями? И как сделать, чтобы в режиме редактирования объекта осуществлялось именно перемещение-вращение всего многоугольника? Или же может стоит сделать класс Многоугольника, у которого есть динамический список вершин?
Подскажите плз, как бы вы это реализовали в теории?
|