Search the Community
Showing results for tags 'new map'.
-
Hello Everyone, So I have started working on my game in leadwerks (C++). It has been really fun so far but for some strange reason I just can't get it to work the way I want. For now the project only consists of a few files and I was working on getting my SceneManager to work. The scenemanager should create the world / load worlds etc but when I run my code it keeps flickering the screen and doesn't load up the map correct. I have tried both world->clear and world->release but it keeps flickering the loading screen and doesn't return. So I hope someone could help me out and show me what I am doing wrong here (it works in my head ). #include "SceneManager.h" using namespace Leadwerks; SceneManager::SceneManager() { this->mLoadingTexture = NULL; this->mCustomLoadingTexture = NULL; } SceneManager::~SceneManager() { } bool SceneManager::Init() { // Create / Load a default placeholder for the loading screen this->mLoadingTexture = Texture::Load("Materials/UI/Loading_Default.tex"); if (this->mLoadingTexture == NULL) return LogUtil::returnWithMessage(LogType::LOG_ERROR, "Failed to load texture: 'Materials/UI/Loading_Default.tex'"); //this->mLoadingTexture->AddRef(); // Create / Load World this->mWorld = World::Create(); } bool SceneManager::LoadScene(std::string map, World* world, Context* context) { // Unload custom loading screen if loaded //this->UnloadCustomLoadingTexture(); // Now reload the load texture // First render the Loading Screen if (FileSystem::GetFileType("Materials/UI/Loading_" + map + ".tex") != NULL){ LogUtil::writeMessage(LogType::LOG_INFO, "Custom loadingscreen found: Materials/UI/Loading_" + map + ".tex"); // Try to load it this->mCustomLoadingTexture = Texture::Load("Materials/UI/Loading_" + map + ".tex"); //this->mCustomLoadingTexture->AddRef(); } else{ LogUtil::writeMessage(LogType::LOG_DEBUG, "Map doesn't have custom loadingscreen..."); } // Next render the loading screen (as the load map function blocks) if (mCustomLoadingTexture != NULL) context->DrawImage(mCustomLoadingTexture, 0, 0, context->GetWidth(), context->GetHeight()); else context->DrawImage(mLoadingTexture, 0, 0, context->GetWidth(), context->GetHeight()); context->Sync(false); // Clear the old world Time::Pause(); if ( world != NULL ) world->Release(); world = World::Create(); // Now load the actual map if (!Map::Load("Maps/" + map + ".map")){ // Failed to load map LogUtil::writeMessage(LogType::LOG_WARNING, "Failed to load map..."); } Time::Resume(); // The map is loaded now create a scene from it // TODO: CREATE A SCENE // Unload the custom loading texture now that we have build the scene //this->UnloadCustomLoadingTexture(); return true; } void SceneManager::UnloadCustomLoadingTexture() { if (this->mCustomLoadingTexture != NULL){ this->mCustomLoadingTexture->Release(); this->mCustomLoadingTexture = NULL; } } void SceneManager::Update() { if (mWorld != NULL) mWorld->Update(); } void SceneManager::Render() { if (mWorld != NULL) mWorld->Render(); } With kind regards, StaticCube