/
Zamar_Terrier
/
TigorEngine
Обзор
Документация
Войти
/
Zamar_Terrier
/
TigorEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
includes/Objects/gameObject.h
144 строки
5 KB
Zamar_Terrier
Офигенное обновление движка
31 июл 2026, 21:03
Верифицирован
31 июл 2026, 21:03
1682686
Код
Авторство
О чём код?
#ifndef GAMEOBJECT_H #define GAMEOBJECT_H #include "Variabels/engine_includes.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Флаги объектов игры */ typedef enum { TIGOR_GAME_OBJECT_FLAG_LIGHT = 0x1, ///< Флаг объекта со светом TIGOR_GAME_OBJECT_FLAG_WIRED = 0x2, ///< Флаг объекта в проволочном режиме TIGOR_GAME_OBJECT_FLAG_SELF_CAMERA = 0x4, ///< Флаг объекта с собственной камерой TIGOR_GAME_OBJECT_FLAG_INIT = 0x8, ///< Флаг инициализации объекта TIGOR_GAME_OBJECT_FLAG_SHADED = 0x10, ///< Флаг затененного объекта TIGOR_GAME_OBJECT_FLAG_LIGHT_SHADER = 0x20, ///< Флаг объекта со световым шейдером TIGOR_GAME_OBJECT_FLAG_PREINIT = 0x40, ///< Флаг предварительной инициализации TIGOR_GAME_OBJECT_FLAG_DESTROYED = 0x80, ///< Флаг удаленного объекта TIGOR_GAME_OBJECT_FLAG_ERROR_IMAGE = 0x100, ///< Флаг ошибки изображения TIGOR_GAME_OBJECT_FLAG_RECREATED = 0x200 ///< Флаг ошибки изображения } EngineGmaeObjectFlag; /** * @brief Типы объектов игры */ typedef enum { TIGOR_GAME_OBJECT_TYPE_2D, ///< 2D объект TIGOR_GAME_OBJECT_TYPE_3D, ///< 3D объект TIGOR_GAME_OBJECT_TYPE_MODEL, ///< Модель TIGOR_GAME_OBJECT_TYPE_PARTICLE_2D, ///< 2D частицы TIGOR_GAME_OBJECT_TYPE_PARTICLE_3D ///< 3D частицы } GameObjectType; /** * @brief Устанавливает функцию инициализации объекта * @param go Указатель на объект игры * @param func Указатель на функцию инициализации */ void GameObjectSetInitFunc(GameObject *go, void *func); /** * @brief Устанавливает функцию обновления объекта * @param go Указатель на объект игры * @param func Указатель на функцию обновления */ void GameObjectSetUpdateFunc(GameObject *go, void *func); /** * @brief Устанавливает функцию отрисовки объекта * @param go Указатель на объект игры * @param func Указатель на функцию отрисовки */ void GameObjectSetDrawFunc(GameObject *go, void *func); /** * @brief Устанавливает функцию очистки объекта * @param go Указатель на объект игры * @param func Указатель на функцию очистки */ void GameObjectSetCleanFunc(GameObject *go, void *func); /** * @brief Устанавливает функцию пересоздания объекта * @param go Указатель на объект игры * @param func Указатель на функцию пересоздания */ void GameObjectSetRecreateFunc(GameObject *go, void *func); /** * @brief Устанавливает функцию уничтожения объекта * @param go Указатель на объект игры * @param func Указатель на функцию уничтожения */ void GameObjectSetDestroyFunc(GameObject *go, void *func); /** * @brief Устанавливает функцию инициализации шейдера объекта * @param go Указатель на объект игры * @param func Указатель на функцию инициализации шейдера */ void GameObjectSetShaderInitFunc(GameObject *go, void *func); /** * @brief Инициализирует объект игры * @param go Указатель на объект игры */ void GameObjectInit(GameObject* go); /** * @brief Обновляет состояние объекта игры * @param go Указатель на объект игры */ void GameObjectUpdate(GameObject* go); /** * @brief Отрисовывает объект игры * @param go Указатель на объект игры */ void GameObjectDraw(GameObject* go); /** * @brief Очищает ресурсы объекта игры * @param go Указатель на объект игры */ void GameObjectClean(GameObject* go); /** * @brief Пересоздает объект игры * @param go Указатель на объект игры */ void GameObjectRecreate(GameObject* go); /** * @brief Уничтожает объект игры и освобождает ресурсы * @param go Указатель на объект игры */ void GameObjectDestroy(GameObject* go); /** * @brief Инициализирует шейдеры объекта игры * @param go Указатель на объект игры */ void GameObjectShaderInit(GameObject* go); /** * @brief Блокирует объект игры для многопоточного доступа * @param go Указатель на объект игры */ void GameObjectLock(GameObject* go); /** * @brief Разблокирует объект игры после многопоточного доступа * @param go Указатель на объект игры */ void GameObjectUnlock(GameObject* go); #ifdef __cplusplus } #endif #endif // GAMEOBJECT_H