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

1

21.07.2008, 19:41

Menü Problem beim SDL Game

Hallo Leute ich habe versucht bei dem SDL Game das im buch entwickelt wird ein Menü einzubauen aber leider geht irgend etwas nicht!!

Ich wollte ein Sprite einfügen dass das Menü und einen Passenden Hintergrund enthält.

Und dann will ich das ganze über eine switch case verzweigung in der main funktion abfragen ob das spiel gestartet werden solll oder nicht!!




Hier ist der Quelltext

HPP

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef MENUE_HPP
#define MENUE_HPP

#include "Sprite.hpp"


class CMenue
{
public:

    CMenue ();

    void Init   ();
    void Quit   ();
    void Erstellen ();

private:
     CSprite *m_pSpriteBackgroundM;         // Sprite für den Hintergrund (..M steht für Menue)

};

#endif;


CPP

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "Menue.hpp"

CMenue::CMenue ()
{

    
    m_pSpriteBackgroundM = NULL;
    
}

//Init


// Sprites erzeugen und laden


void CMenue::Init ()
{
    // HintergrundSprite ertellen

    m_pSpriteBackgroundM = new CSprite;

    m_pSpriteBackgroundM->Load ("Data/Background.bmp");


}

void CMenue::Quit ()
{
    //HintergrundSprite freigeben

    if (m_pSpriteBackgroundM != NULL)
    {
        delete (m_pSpriteBackgroundM);
        m_pSpriteBackgroundM = NULL;

    }

}
//Sprite erstellen 


void CMenue::Erstellen ()
{
    
    
    //Hintergrund Rendern

    m_pSpriteBackgroundM->Render ();



}


Ich danke euch schon im voraus für eure hilfe

ThePhil

Frischling

Beiträge: 23

Beruf: Schüler

  • Private Nachricht senden

2

21.07.2008, 20:05

Re: Menü Problem beim SDL Game

Zitat von »"Norskan"«

m_pSpriteBackgroundM->Load ("Data/Background.bmp");


Hi!

Das / ist hier das Problem denk ich mal.
Da sollte ein \ sein. Achtung: Für ein \ muss man \\ schreiben!!

Also mach statt "Data/Background.bmp" ein "Data\\Background.bmp" ;)

3

21.07.2008, 20:10

Nein geht leider immer noch nicht aber danke für den Tipp

NicoWe

Treue Seele

Beiträge: 126

Wohnort: Bielefeld / NRW

  • Private Nachricht senden

4

21.07.2008, 20:39

was geht denn nicht? Bekommst du eine fehlermeldung? Oder kommt einfach nichts auf dem Bildschirm an?

ist das Laden denn überhaupt erfolgreich? Überprüf doch mal ob das SDL_Surface NULL ist
Erfolg ist die Fähigkeit, von einem Misserfolg zum anderen zu gehen,
ohne seine Begeisterung zu verlieren.
-Winston Churchill-

5

21.07.2008, 20:53

Der Copiler zeigt keine fehler an wenn du das meinst aber in der konsole
erscheint volgender text:

Fatal signal: Segentation False < SDL Parachut Deployed>

6

21.07.2008, 20:55

fieleicht hilft das noch die veränderte Main Datei

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "Framework.hpp"
#include "Game.hpp"
#include "Menue.hpp"

int main (int argc, char *argv[])
{
  // Framework initialisieren

  if (g_pFramework->Init (800, 600, 16, true) == false)
    return (0);
  
  bool GameStarten = false;
  int Auswahl = 0;
      
  //Menü aufrufen

  
  CMenue Menue;

  Menue.Init ();

  Menue.Quit ();

  Menue.Erstellen ();

  
  switch (Auswahl)
  {
  case ('1'):
      {
          GameStarten = true;
      }
  }
  
  

  if (GameStarten == true)
  {// Neue Instanz des Spiels

   CGame Game;

  // Spiel initialisieren

  Game.Init ();

  // Spiel laufen lassen. Diese Funktion läuft so lange,

  // bis das Spiel geschlossen oder die Escape-Taste

  // gedrückt wird

  Game.Run ();

  
  // Spiel beenden

  Game.Quit ();
  }
      
  

  // Framework beenden

  g_pFramework->Quit ();
  g_pFramework->Del ();

  return (0);
}

NicoWe

Treue Seele

Beiträge: 126

Wohnort: Bielefeld / NRW

  • Private Nachricht senden

7

21.07.2008, 20:58

ich meinte wenn du das ganze Debuggst und in der Ladefunktion des Menühinterrundes bist, welchen wert hat dann die Membervariable von CSprite nachdem SDL_LoadBMP aufgerufen wurde? Wenn das NULL ist solltest du mal gucken wie du die Hintergrunddatei im data ordner benannt hast
Erfolg ist die Fähigkeit, von einem Misserfolg zum anderen zu gehen,
ohne seine Begeisterung zu verlieren.
-Winston Churchill-

8

21.07.2008, 21:16

Nein es ist nicht Null und der Name stimmt auch

ThePhil

Frischling

Beiträge: 23

Beruf: Schüler

  • Private Nachricht senden

9

21.07.2008, 21:27

Kleine Frage:
Wozu Menue.Init() und dannach gleich Menue.Quit()?

10

21.07.2008, 21:30

Oman danke auf das wäre ich jetzt sicher nicht gekommen das gibts doch nicht!!!

Auf jedenfall danke das ist mir jetzt echt etwas peinlich

Werbeanzeige