Универсальный редактор для нескольких проектов Мельников Михаил.

Презентация:



Advertisements
Похожие презентации
Пользовательский интерфейс для нескольких проектов Александр Веселов.
Advertisements

Тема: GUI - организация конвейера Докладчик: Николай Воронецкий.
Data Driven Game Engine Юрий Блажевич. Data driven game engine Юрий Блажевич Вступление Форматы данных Дуализм представления данных Пользовательский интерфейс.
Модуль 7 Разработка и создание форм. Общие сведения Формы. Основные понятия. Создание форм с помощью мастера. Использование выражений в формах. Работа.
ООП Классы Данные отдельно, методы отдельно struct Node { Node* next; void* data; }; struct List { Node* first; int size; }; void* allocate() { … } void.
Стандартные программы Windows. Основные определения Стандартные программы Windows – предназначены для выполнения самых различных действий, который являются.
Среда программирования Visual Basic. Презентацию подготовила учитель информатики МБОУ СОШ 3 г. Светлого Нетесова Наталья Александровна.
Информационная технология 7 класс. Тема I триместр Техника безопасности на уроках технологии. Основные понятия. Структура курса. Что такое презентация.
Эффективная разработка отчётов на платформе.NET Александр Федяшов Fast Reports Inc.
Универсальность. Классы с родовыми параметрами. Под универсальностью (genericity) понимается способность класса объявлять используемые им типы как параметры.
Тема 5. Введение в среду визуального программирования Borland Delphi 7.0.
Инструмент разработки электронных курсов. Структура презентации Инструмент разработки электронных курсов – что это? Зачем разрабатывать курсы самостоятельно?
Лекция 31. Динамическая информация о типе Красс Александр СПбГУ ИТМО, 2009.
Тема: Ресурсная система для MMO Докладчик: Сидоренко Дмитрий.
Окна и формы. Компоненты. Пуск => Все программы => Lazarus => Lazarus. при этом запускается оболочка создания приложений, называемая интегрированной средой.
Модуль 2 Документы в текстовом редакторе Microsoft Word 2003.
Объектно-ориентированное программирование Основы языка программирования Lazarus.
gismapserver Шелковников Сергей Иннокентьевич, директор, Компания ШЕЛС gis mapdraw server.
Задачи на 28 апреля Язык С++1Задачи на 28 апреля Язык С++1.
Обобщения ( шаблоны ) Лекция 5. Тип, метод или интерфейс параметризованный другим типом Обобщенный тип Тип ( класс, структура ), который параметризован.
Транксрипт:

Универсальный редактор для нескольких проектов Мельников Михаил

Универсальный редактор для нескольких проектов Мельников Михаил Бинарные данные: Картинки Модели Анимации Звуки Музыка Ролики Другие данные

Универсальный редактор для нескольких проектов Мельников Михаил Табличные данные: RPG система Всевозможные настройки вынесенные программистами из кода Игровые локации (карты) Скрипты Обвязки вокруг бинарных данных Данные для ELK (тексты и комментарии к ним) Другие данные

Универсальный редактор для нескольких проектов Мельников Михаил Дуализм хранения данных на этапе разработки:

Универсальный редактор для нескольких проектов Мельников Михаил Требования к механизму работы с табличными данными: Целостность данных на всем этапе разработки Возможность работать с данными вручную Массовая обработка данных Быстрота работы с данными Независимость от конкретных типов данных

Универсальный редактор для нескольких проектов Мельников Михаил Пример структуры данных из кода игры Блицкриг struct SRMPatch { int nSize; string szName; //constructors SRMPatch() {} // serializing... virtual int operator&( IStructureSaver &ss ) { saver.Add( 1, &nSize ); saver.Add( 2, &szName ); } virtual int operator&( IDataTree &ss ) { saver.Add( Size, &nSize ); saver.Add( Name, &szName ); } };

Универсальный редактор для нескольких проектов Мельников Михаил Схема создания типов данных в игре Блицкриг II

Универсальный редактор для нескольких проектов Мельников Михаил Интерфейс IManipulator interface IManipulator : public CObjectBase { virtual IManipulatorIterator* Iterate( bool bShowHidden, ECacheType eCache ) = 0; virtual const SIteratorDesc* GetDesc( const string &rszName ) const = 0; virtual bool GetType( const string &rszName, string *pszType ) const = 0; virtual bool GetName( UINT nID, string *pszName ) const = 0; virtual bool InsertNode( const string &rszName, int nNodeIndex = ADD ) = 0; virtual bool RemoveNode( const string &rszName, int nNodeIndex = REMOVE_ALL ) = 0; virtual bool GetValue( const string &rszName, CVariant *pValue ) const = 0; virtual bool SetValue( const string &rszName, const CVariant &rValue ) = 0; virtual bool CheckValue( const string &rszName, const CVariant &rValue, bool *pRes ) = 0; virtual bool IsNameExists( const string &rszName ) const = 0; };

Универсальный редактор для нескольких проектов Мельников Михаил Броузер данных и универсальный Property Control

Универсальный редактор для нескольких проектов Мельников Михаил Схема работы с данными в редакторе (MCV)

Универсальный редактор для нескольких проектов Мельников Михаил Схема вызова экпортеров в редактрое

Универсальный редактор для нескольких проектов Мельников Михаил Создание, удаление и копирование объектов

Универсальный редактор для нескольких проектов Мельников Михаил Схема вызова редакторов и обработки сообщений

Универсальный редактор для нескольких проектов Мельников Михаил Интерфейс IInputState interface IInputState { virtual void Enter() = 0; virtual void Leave() = 0; virtual void Draw( class CPaintDC *pDC ) = 0; virtual void OnSetFocus( class CWnd* pNewWnd ) = 0; virtual void OnKillFocus( class CWnd* pOldWnd ) = 0; virtual void OnMouseMove( UINT nFlags, const CTPoint &rMousePoint ) = 0; virtual bool OnMouseWheel( UINT nFlags, short zDelta, CTPoint &rMousePoint ) = 0; virtual void OnLButtonDown( UINT nFlags, const CTPoint &rMousePoint ) = 0; virtual void OnLButtonUp( UINT nFlags, const CTPoint &rMousePoint ) = 0; virtual void OnLButtonDblClk( UINT nFlags, const CTPoint &rMousePoint ) = 0; … };

Универсальный редактор для нескольких проектов Мельников Михаил Общая часть редактора: Система обработки XSD, генерация исходников, система считывания бинарных данных, система трансляции данных из внешнего формата во внутренний формат, представление данных в виде IManipulator Общий Frame редактора с несколькими заготовленными окнами визуального редактирования транслирующие сообщения от дизайнера в интерфейс IInputState Возможности по созданию дополнительных окон, меню, панелей инструментов Легкая работа со строкой статуса Броузер общего списка объектов редактирования, система навигации по списку Универсальный Property Control позволяющий редактировать любые данные представленные интерфейсом IManipulator Механизм иерархического запуска экспортеров Механизм вызова дополнительной функциональности при создании объектов, их копировании и удалении Механизм запуска редакторов IEditor

Универсальный редактор для нескольких проектов Мельников Михаил Внешние части редактора: Набор XSD файлов Экспортеры. IExporter Билдеры. IBuilder Редакторы. IEditor + IInputState

Универсальный редактор для нескольких проектов Мельников Михаил