Программирование стратегических игр с DirectX 9.0

bda5893f

Функция C3DAnimation::iNewObj()

Функция создания нового объекта получает имя файла .x и загружает его в ближайший доступный слот объекта. Вот как выглядит код функции:

int C3DAnimation::iNewObj(char *szObjName) { char szFileName[512]; // Создаем имя файла sprintf(szFileName, "Data\\3DObjects\\%s.x", szObjName); // Устанавливаем указатель на объект m_objObject[m_iNumObjects] = new Object3DClass; m_objObject[m_iNumObjects]->hLoad(szFileName, m_pd3dDevice); // Сохраняем имя для последующего использования strcpy(&m_szObjectName[m_iNumObjects][0], szObjName); // Увеличиваем внутренний счетчик m_iNumObjects++; // Возвращаем количество объектов return(m_iNumObjects); }

В первой части функции создается полностью квалифицированное имя файла. Оно включает путь и имя файла.

В следующем фрагменте кода создается новый объект Object3DClass для хранения данных модели из файла .x. Затем только что созданный объект загружает данные из файла .x с помощью собственной функции hLoad().

Как только данные объекта загружены, код устанавливает имя объекта для дальнейших ссылок. Затем увеличивается счетчик количества объектов и его значение возвращается вызывающей программе.

ПРИМЕЧАНИЕ

Класс Object3DClass создан мной для того, чтобы упростить работу с моделями из файлов .x.

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



Содержание раздела