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

11

25.01.2010, 15:39

Die Fehlermeldung hilft nicht unbedingt. In welcher Zeile tritt sie denn auf ?
Hab keinen Bock, extra SDL zu installieren, um den Code zum laufen zu bringe ;)

PS:

Zitat

. Ich hatte meine Sprites nicht als new CSprite deklariert.

Man deklariert nichts mit new ! Eine Deklaration is was ganz anderes.


EDIT: * Hand gegen den Kopf schlag * gleich 2 Mann zuvorgekommen. Das'n Tempo hier.

ich1994

Treue Seele

  • »ich1994« ist der Autor dieses Themas

Beiträge: 164

Wohnort: Erlangen(nähe Nuernberg)

Beruf: Bald Abiturient(kein job eig...)

  • Private Nachricht senden

12

25.01.2010, 15:54

Zitat von »"drakon"«

C-/C++-Quelltext

1
2
3
4
5
6
Anderseits müssen die Sprites gar nicht dynamisch sein. Also kannst du auch gleich automatische Objekte nehmen.
[cpp]    CSprite SpriteFieldBackground;
    CSprite SpriteField;
    SpriteFieldBackground.Load("Pics/Field_Background.bmp");
    SpriteFieldBackground.SetColorKey(255,0,255);
    SpriteField.Load("Pics/Field.bmp");

Dann brauchst du auch kein delete mehr. (und die -> durch . auswechseln, aber das wird dir dein Compiler im Notfall auch noch sagen. ;))


Ich hab es eig dynamisch gemacht, weil ich es danach, wenn es bissl komplexer geworden ist, in einzelne Klassen splitten. Jetzt hab ich deine Variante(die im Zitat) genommen und sieh da:

(Link)

idontknow

unregistriert

13

25.01.2010, 16:00

m_pScreen ist ungültig -> Crash.
Dürfte das selbe problem wie oben sein!

Da braucchst aber ein Pointer, da dir der von SDL_SetVideoMode zurückgegeben wird. Daher kein new.

C-/C++-Quelltext

1
SDL_Surface* screen = SDL_SetVideoMode(640, 400, 32, SDL_DOUBLEBUF);

ich1994

Treue Seele

  • »ich1994« ist der Autor dieses Themas

Beiträge: 164

Wohnort: Erlangen(nähe Nuernberg)

Beruf: Bald Abiturient(kein job eig...)

  • Private Nachricht senden

14

25.01.2010, 16:11

if (g_pFramework->Init (800, 600, 16, false) == false)
{
return (0);
}

Macht das hier nicht das gleiche?
Die Funktion in Framwork:

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
bool CFramework::Init (int ScreenWidth, int ScreenHeight,
                       int ColorDepth, bool bFullscreen)
{
  // Alle Systeme der SDL initialisieren

  if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1 )
  {
    cout << "SDL konnte nicht initialisiert werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();

    return (false);
  }

  // Vollbild oder Fenstermodus einstellen

  if (bFullscreen == true)
  {
    m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
                                 SDL_HWSURFACE | SDL_DOUBLEBUF | 
                                 SDL_FULLSCREEN);
  }
  else
  {
    m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
                                 SDL_HWSURFACE | SDL_DOUBLEBUF);
  }

  // Prüfen, ob alles funktioniert hat

  if (m_pScreen == NULL)
  {
    cout << "Videomodus konnte nicht gesetzt werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();

    return (false);
  }

15

25.01.2010, 16:26

Wo weist du denn CSprite::m_pScreen einen Wert zu ?

Die Codestelle wäre interessant.

idontknow

unregistriert

16

25.01.2010, 16:30

Ich empfehle dir DRINGEND nicht alles stur zu kopieren weil du damit ums mal ganz direkt zu sagen total aufs Maul fliegst!

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
if (m_pScreen == NULL)
  {
    cout << "Videomodus konnte nicht gesetzt werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();
  
[b][color=red]}[/color][/b]
  return (false);
}


Edit: bescheuerte Formatierung... kA Warum Edit das verursacht aht auf jedenfall fehlt da ein "}" vor dem return..

17

25.01.2010, 16:33

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
if (m_pScreen == NULL)
  {
    cout << "Videomodus konnte nicht gesetzt werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();
 
[b:ebc9134a76][color=red:ebc9134a76]}[/color:ebc9134a76][/b:ebc9134a76]
  return (false);
}


Ich glaub, die funktion, die er meint geht danach weiter, somit gehört das return noch in den if-block. ;)

idontknow

unregistriert

18

25.01.2010, 16:36

Ach verdammt stimmt. :P.

Naja auf jedenfall ist dein Screen ungültig soviel steht fest!

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

19

25.01.2010, 16:39

Zitat von »"idontknow"«

Ich empfehle dir DRINGEND nicht alles stur zu kopieren weil du damit ums mal ganz direkt zu sagen total aufs Maul fliegst!


*unterschreib*
du bist zu ungeduldig. anstatt ordentlich zu lesen und regelmäßig kleine projekte zu machen um das gelernte zu festigen startest du gleich ein solches projekt ohne zu wissen was überhaupt sache ist.
die sfml ist übrigens wesentlich einsteigerfreundlicher.(aber/und da kannsu nicht einfach drauf los kopieren)
"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?

ich1994

Treue Seele

  • »ich1994« ist der Autor dieses Themas

Beiträge: 164

Wohnort: Erlangen(nähe Nuernberg)

Beruf: Bald Abiturient(kein job eig...)

  • Private Nachricht senden

20

25.01.2010, 16:39

ach.. CSprite hat auch ein m_pScreen :lol::lol::lol:
Hab gedacht von Framework^^.
Was soll ich dann mit CSprite::m_pScreen machen?

EDIT:
Ich schau mal in den Spiel von Heiko

Werbeanzeige