Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <SFML\Graphics.hpp> #include "RessourceManager.h" #ifndef RENDERSCREEN_H #define RENDERSCREEN_H enum ScreenState { IDLE, ACTIVE, } class RenderScreen { protected: RessourceManager *m_pRessources; int m_iState; public: RenderScreen(void); virtual ~RenderScreen(void); virtual void Update(const float elapsedTime) = 0; virtual void Render(sf::RenderWindow * window) = 0; int GetState(void); void SetState(ScreenState state); }; #endif |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
//Member in Gameklasse std::list<RenderScreen*> m_lScreens; // Initialize Funktion von Game Klasse this->m_lScreens.push_back(new IntroScreen(bla)); this->m_lScreens.push_back(new MenuScreen(bla)); this->m_lScreens.push_back(new IngameScreen(bla)); this->m_lScreens.push_back(new GameOverScreen(bla)); |
Community-Fossil
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
std::list<RenderScreen*>::iterator itUpdate; for (itUpdate = m_lScreens.begin(); itUpdate != m_lScreens.end(); itUpdate++) { if (itUpdate->GetState == ACTIVE) { itUpdate->Update(this->m_ElapsedTime); } } |
Community-Fossil
Also ich setze in der Basisklasse den ressourcenManager nur auf "NULL" und im Destruktor mache ich das selbe falls es nciht NULL ist.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include "RenderScreen.h" RenderScreen::RenderScreen(void) { this->m_iState = IDLE; this->m_pRessources = NULL; } RenderScreen::~RenderScreen(void) { if (m_pRessources != NULL) m_pRessources = NULL; } int RenderScreen::GetState(void) { return this->m_iState; } void RenderScreen::SetState(ScreenState state) { this->m_iState = state; } |
Community-Fossil
Community-Fossil
Ja mit den NULL könntest du recht haben, mache dies auch nur sicherheitshalber, tut ja nicht weh das es da steht.
Werbeanzeige