Я пытаюсь использовать свой класс ResourceManagement в моем менеджере уровней, чтобы я мог начать создавать ресурсы.
Однако я получаю следующие ошибки
Код серьезности Описание Состояние подавления строки файла проекта
Ошибка C4430, отсутствует указатель типа — предполагается int. Примечание: C ++ не
поддержка default-int levelmanager.h 49Код серьезности Описание Состояние подавления строки файла проекта
Ошибка C2143 Синтаксическая ошибка: отсутствует ‘;’ до
‘*’ Diabro levelmanager.h 49
Я объявил класс ResourceManagement, как указано в LevelManager.h
private:
Ogre::Entity* _playerEntity;
ResourceManagement* mgr;
а затем использовать его в LevelManager.cpp
mgr->createResource("Diabro\Diabro\media\models", "MESH", "ninja.mesh", "Mesh", "meshes"); //location of file, codeType of resourcetype, name of resource, type of resource, resourcegroup
mgr->loadResource("meshes");
mgr->reloadResource("ninja.mesh", "meshes");
mgr->unloadResource("ninja.mesh", "meshes");
Класс ResourceManagement
void ResourceManagement::initialize()
{
_groupManager == new Ogre::ResourceGroupManager;
}
void ResourceManagement::createResource(std::string pLocation, std::string pLocType, std::string pResourceName, std::string pResourceType, std::string pGroupName)
{
_groupManager->getSingleton().addResourceLocation(pLocation , pLocType);
_groupManager->getSingleton().declareResource(pResourceName, pResourceType, pGroupName);
_groupManager->getSingleton().initialiseResourceGroup(pGroupName);
// Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); can be used to just load all, need decision which we want
}void ResourceManagement::unloadResource(std::string pResourceName, std::string pGroupName) // unloads a single resource
{
Ogre::ResourcePtr ptr = _resourceMgr->getResourceByName(pResourceName);
ptr->unload();
_resourceMgr->remove(pResourceName);
}void ResourceManagement::unloadResourceGoup(std::string pGroupName)
{
_groupManager->getSingleton().unloadResourceGroup(pGroupName);
}
void ResourceManagement::loadResource(std::string pGroupName)
{
_groupManager->getSingleton().loadResourceGroup(pGroupName);
}void ResourceManagement::reloadResource(std::string pResourceName, std::string pGroupName)
{
Ogre::ResourcePtr ptr = _resourceMgr->load(pResourceName, pGroupName);
ptr->escalateLoading();
ptr->reload();
}
Задача ещё не решена.
Других решений пока нет …