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

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

1

25.09.2010, 19:52

Finde Fehler nicht - Menüerweiterung von SDL_Game

Hallo zusammen,

bin hier schon länger im Forum und bisher haben mir die existierenden Themen immer weiter geholfen aber jetzt weiß ich echt nicht weiter.

Einmal stürzt das Programm imemr ab wenn ich vom Spiel zum Menü wechseln will. (Jedenfalls in der Vorherigen Version)

Und die jetztige Version (habe in dieser Version nur die Tastenabfrage im Menü geändert) lässt sich erst garnicht kompilieren und es kommt der Fehler:

C-/C++-Quelltext

1
2
3
1>c:\c++\projekte\sdl_game\menue.cpp(67) : error C2065: 'g_pGame': nichtdeklarierter Bezeichner
1>c:\c++\projekte\sdl_game\menue.cpp(67) : error C2227: Links von "->m_bGameRun" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
1>        Typ ist ''unknown-type''


3 Mal (für Jede Taste einmal)

Hier sind die Quellcodes, wäre nett, wenn ihr mir helfen könntet :)

Quellcodes

Mfg Ressaw

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

25.09.2010, 20:14

Der Fehler sollte leicht zu lokalisieren sein (ich habe mir den Code nicht angesehen; lad den irgendwo besser rauf). g_pGame wird nicht gefunden und da ich mal annehme, dass das eine globale Variable ist musst du den Header, wo der deklariert ist einbinden.

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

3

25.09.2010, 20:24

Hmm.. die globale Variable hab ich eigentlich mit

C-/C++-Quelltext

1
#define g_pGame CGame::Get()

deklariert, der Fehler kommt aber trotzdem

EDIT:
Achja hier nochmal der Quelltext^^

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

25.09.2010, 20:27

C-/C++-Quelltext

1
#include "Game.hpp"
fehlt in der Menue.cpp

überleg ob du wirklich so viele singletons brauchst.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

5

25.09.2010, 20:31

Hmm mist doofer Fehler...

Nunja jetzt tun sich 22 neue Fehler auf ich glaub ich muss den ganzen Quelltext nochmal durchgehen.

Trotzdem dankeschön

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

7

25.09.2010, 21:37

Hmm.. okay hab den Fehler gefunden #ifndef und Co. fehlten...

Hab soweit jetzt alles korrigiert, nur jetzt stürzt das Programm ab, wenn ich vom Spiel ins Menü wechseln will, kann da vielleicht nochmal jemand gucken? :S


EDIT:
Der Fehler sollte hier liegen:

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
void CMenue::Init ()
{
    // Hintergrund erzeugen und laden
    m_pSpriteMenue = new CSprite;
    m_pSpriteMenue->SetPos (0, 0);
    m_pSpriteMenue->Load ("Data/MenueLayout.bmp");

    // Zeiger auf Spiel setzen
    m_pGame = new CGame;

    // Zeiger auf den Text
    m_pText = new CText;
}

void CMenue::Render()
{
    // MenüLayout rendern
    m_pSpriteMenue->Render ();

    // Text Rendern
    m_pText->RenderText ("Hauptmenü", 300, 40, 255, 255, 255);
    m_pText->RenderText ("Esc: Spiel beenden", 250, 200, 255, 0, 0);
    m_pText->RenderText ("Enter: Spiel Starten", 250, 300, 0,255,0);
}

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Ressaw« (25.09.2010, 21:44)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

25.09.2010, 21:54

Wird Init überhaupt aufgerufen? - Am besten machst du diese Funktion privat und rufst sie im Konstruktor auf!

Ressaw

Frischling

  • »Ressaw« ist der Autor dieses Themas

Beiträge: 19

Wohnort: Nähe von Krefeld

Beruf: Schüler

  • Private Nachricht senden

9

25.09.2010, 22:16

Also der Fehler ist weg. Hab die Init Funktion in den Konstruktor geschoben und jetzt Funktioniert alles.

Ich bin jetzt zwar ein bisschen Verwirrt, weil vorher hab ich sie einfach in der main Funktion aufgerufen.

Solang es jetzt klappt bin ich glücklich und nochmal danke :D

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

25.09.2010, 22:23

Bist du sicher? - Wenn sie wirklich aufgerufen worden wurde, dann hast du ein anderes Problem..

Werbeanzeige