was mich jetzt noch interessieren würde, ich habe in meiner game cpp jetzt handel auf alle momentan aktiven instanzen z.b die Sprit klasse, TileManager etc.
funktioniert so, habe in meiner Game klasse jeweils einen Pointer der per Funktion Init der CGame Klasse übergeben wird, und da dann letzendlich im Pointer gespeichert wird.
Frage für mich ist, ob das halt ne gute Variante ist oder halt nicht.
Hier mal die Klasse CGame
|
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
|
#ifndef GAME_HPP
#define GAME_HPP
#include "EManiaLX/Framework.hpp"
#include "Map.hpp"
#include "EManiaLX/LXTileManager.hpp"
#include "EManiaLX/CTileSprite.hpp"
class CGame
{
public:
void Init(CMap *Map, CTMng *TileMng, CTileSprite *CTSprite ); // Handling auf alle wichtigen Spielklassen
void GenerateHandle(); // Generiert Spielklassen
void RunGame(); //Hauptschleife des Spieles
void ExecutionEvents();
private:
CMap *MyMap; //Handling auf Mapload
CTMng *MyTileMng;//Handling auf Tilemanager
CTileSprite *MyTileSprite;//Handling auf Sprites
bool MyGameRun;
};
#endif // GAME_HPP
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
void CGame::Init(CMap *Map, CTMng *TileMng, CTileSprite *CTSprite )
{
MyMap = Map;
MyTileMng = TileMng;
MyTileSprite = CTSprite;
GenerateHandle();
MyGameRun=true;
}//Init
|
Für mich ist das eigentlich recht praktisch, weil ich so die einzelnen Funktionen für das Spiel direkt über die Game Klasse ansprechen kann
meine Momentane Run Schleife für das Game schaut da schon recht gut aus.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
void CGame::RunGame()
{
while(MyGameRun==true)
{
ExecutionEvents();
g_pFramework->Update();
MyTileMng->Render();
g_pFramework->Flip();
}
}//RunGame
|