Du bist nicht angemeldet.

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

Anonymous

unregistriert

1

13.01.2006, 18:01

Singletonklasse will nicht so wie ich will

Hallo, ich bin gerade dabei in das SDL Kalista Spiel Text zu versuchen einzubinden.
Dazu gebe ich euch hier erstmal den Inhalt meiner eigenen Font.h:

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
#ifndef FONT_HPP
#define FONT_HPP


#include <SDL/SDL_ttf.h>
#include "singleton.hpp"
#include "Game.hpp"

#define g_pFont CFont::Get ()

class CFont : public TSingleton<CFont>
{
  public:
    CFont           ();
    ~CFont          ();
    //void  Update     ();

    void RenderText(const char *text, SDL_Rect *Rect);

  private:
    TTF_Font *font;
    SDL_Surface *text_surface;
    CSprite *m_pSprite;

};

#endif


Wie man sieht, ist die Klasse als Singletonklasse definiert (was ja auch Sinn macht). Wenn ich nun versuche in der Hauptschleife des Spiels auf RenderText zuzugreifen spuckt der Compiler den fehler aus, dass g_pFont nicht bekannt ist. Hier die betreffenden Zeilen aus der Game.cpp

C-/C++-Quelltext

1
2
    g_pFont->RenderText("Test", m_High);
    g_pFont->RenderText("12", m_Score);


Mache ich da was falsch oder warum funzt das nicht?

matthias

Alter Hase

Beiträge: 449

Wohnort: wipperfürth

  • Private Nachricht senden

2

13.01.2006, 19:28

ka, aber warum ist dein konstruktor public?

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

3

14.01.2006, 01:55

warum sollte ein Konstruktor private sein??

matthias

Alter Hase

Beiträge: 449

Wohnort: wipperfürth

  • Private Nachricht senden

4

14.01.2006, 10:51

na damit man nur eine Instanz erstellen kann.

Anonymous

unregistriert

5

14.01.2006, 11:36

Spik)evil(
Wohl noch nie ein Singleton gemacht, gell? :huhu:

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

6

14.01.2006, 15:55

ne^^
Im Moment mach ich aber eh gar nix.. TriBase funzt noch nich auf VS 8, Studium braucht meine ganze Aufmerksamkeit da bleibt nicht viel Zeit über :\

Werbeanzeige