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

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

1

30.05.2011, 20:03

SDL_Game.exe funktioniert nicht mehr...?

Halli Hallo,

Ich habe vor kurzer Zeit das Buch von Heiko Kalista (C++ für Spieleprogrammierer) durchgelesen und wollte das SDL Spiel im letztem Kapitel erweiter: Ich wollte, dass der Spieler zerstört wird, wenn er einen Asteroiden trifft. Also habe ich ersteinmal ein Rect angefertigt (für den Spieler)... Wenn ich dass Programm jetzt starte, dann gibt der Compiler zwar keine Meldung aus, und das Programm startet auch, bricht aber leider sofort wieder ab und gibt die Nachricht: SDL_Game.exe funktioniert nicht mehr aus.... Ich habe leider überhaupt keinen Anhaltsunkt und hatte gehofft, dass mir hier einer helfen kann

Tschonni

Treue Seele

Beiträge: 113

Wohnort: Tirol

Beruf: Schüler

  • Private Nachricht senden

2

30.05.2011, 20:11

Quellcode wäre sehr hilfreich.

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

3

30.05.2011, 20:23

okay... Welcher genau?? Hier vllt. hilft ja das:

void CGame::Init ()
{
// Neuen Spieler initialisieren
m_pPlayer = new CPlayer;
m_pPlayer->Init ();
m_pPlayer->Reset (m_pSpritePlayer, 376.0f, 520.0f);

...

void CPlayer::ProcessMoving ()
{
// Nach links?
if (g_pFramework->KeyDown (SDLK_LEFT))
{
// Spieler nach links bewegen
m_fXPos -= 300.0f * g_pTimer->GetElapsed ();

m_Rect.y = static_cast<int>(m_fXPos);

// Animieren
m_fAnimPhase -= 20.0f * g_pTimer->GetElapsed ();

}
// Nach rechts?
else if (g_pFramework->KeyDown (SDLK_RIGHT))
{
// Spieler nach rechts bewegen
m_fXPos += 300.0f * g_pTimer->GetElapsed ();

m_Rect.y = static_cast<int>(m_fXPos);

// Animieren
m_fAnimPhase += 20.0f * g_pTimer->GetElapsed ();


Oder liegts vielleicht daran, dass das Rect noch nicht in benutzung ist??? aber eig. dürfte das ja nicht so schlimm sein, wenn mans nur initialisiert und updadet

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

4

30.05.2011, 20:25

Das ist jetzt der dritte Post in der Art. Ich glaube es ist besser wenn du noch ein paar kleine Konsolenanwendungen von Grund auf selbst schreibst und dann mit der SFML anfängst.
Das erweitern eines halb fertigen Spiels gehört sowieso schon zu den schwierigeren Sachen.

Wie startest du das Spiel denn? Mit Strg+F5 oder führst du die exe direkt aus? Normalerweise kommt diese Meldung nicht beim Debuggen.

edit:
hier hast du einen Tippfehler:

C-/C++-Quelltext

1
m_Rect.y = static_cast<int>(m_fXPos);


Sonst ist nichts auffälliges im geposteten Code.
"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?

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

5

30.05.2011, 20:27

Ja, mit Strg+F5

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

6

30.05.2011, 20:29

Probiers mal mit F5.(mit Debugger) Wenn der Fehler auftritt, fragt er ob er es nochmal versuchen soll. Dann klickst du auf wiederholen und er zeigt dir die Zeile an, in dem der Fehler auftritt.(bitte die Debugversion, nicht die Releaseversion, benutzen)
"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?

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

7

30.05.2011, 20:30

okay, habs. Danke... Und warum hats nicht mit Alt+F5 geklappt?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

8

30.05.2011, 20:34

Und warum hats nicht mit Alt+F5 geklappt?

Weil das Programm dann ganz normal ausgeführt wird. Wenn dann ein Fehler auftritt, wird das von der IDE nicht bemerkt und der Fehler kann nicht angezeigt werden.

Das ist eigentlich nur Sinnvoll wenn man z.b. eine Netzwerkanwendung schreibt und das Programm zwei mal ausführen muss(einmal als Client und einmal als Server)
Dann startet man eine Instanz aber trotzdem mit F5, weil man ja die Fehler angezeigt haben will :D
"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?

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

9

30.05.2011, 21:04

Das ist seltsam: Wenn ich das Programm über die .exe starte geht zwar das Spiel, aber nicht mit dem, was ich hinzugefügt habe.. Wenn ich nur F5 drücke dann stürtzt wieder alles ab -_-*

Mastermind

unregistriert

10

01.06.2011, 11:16

Liegt eventuell am unterschiedlichen Arbeitsverzeichnis?!

Werbeanzeige