JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=8785f8124ccfbec4c498850bc269a429Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

DirectX Problem - Stürzt beim Starten ab

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Luinechor
Mini JLI'ler


Alter: 32
Anmeldedatum: 20.03.2008
Beiträge: 5

Medaillen: Keine

BeitragVerfasst am: 20.03.2008, 16:02    Titel: DirectX Problem - Stürzt beim Starten ab Antworten mit Zitat

Hi, ich bin gerade am Lernen mit DirectX umzugehen und stoße auch auf viele Probleme. Ich konnte zwar viele alleine lösen, doch jetzt verharre ich seit geraumer Zeit bei einem Problem.

Das Spiel soll ein kleiner Space-Shooter werden, allerdings ist das erstmal unrelevant.

Ich habe die viel von den Klassen aus dem im Titel-stehenden Buch genommen.
Dazu habe ich noch 2 andere Klassen.

die cGame und die cPlayer Klasse (im Beispielprojekt befindet sich noch eine nicht fertige cShot Klasse...)

Das Problem ist, dass ich beim Initialisieren des Spielers, genauer gesagt der Ressourcen ein Problem bekomme.

Die Funktion:
CPP:
int cPlayer::Init(cDirect3D *Direct3D, cAudio *Audio, cResourceManager *ResourceManager)
{
    //////////////////////////////////////////////////////////////
    m_pDirect3D = Direct3D;
    m_pAudio    = Audio;
    m_pResourceManager = ResourceManager;
    m_pSpritePlayer = new cSprite;

    m_pSpritePlayer->Create(m_pDirect3D->GetDevice(), m_pResourceManager, 3);
    m_pSpritePlayer->SetSpeed(600.0f, 600.0f);
    m_pSpritePlayer->SetPosition(50, 50);

// Wenn dies aufgerufen wird, findet der Fehler statt. Allerdings erst beim Beenden
//    m_pResourceManager->AddTexture("Sprites/Player/Player1.png");
//    m_pResourceManager->AddTexture("Sprites/Player/Player2.png");
//    m_pResourceManager->AddTexture("Sprites/Player/Player3.png");

// Sofern dies danach ausgeführt wird, stürzt das Spiel gleich beim Start ab!
//    m_pSpritePlayer->AddTexture(m_pResourceManager->GetTexture("Sprites/Player/Player1.png"));
//    m_pSpritePlayer->AddTexture(m_pResourceManager->GetTexture("Sprites/Player/Player2.png"));
//    m_pSpritePlayer->AddTexture(m_pResourceManager->GetTexture("Sprites/Player/Player3.png"));
    /////////////////////////////////////////////////////////////

    return 0;
}



Hoffe ihr versteht es und könnt mir helfen. Wink


EDIT: Ich denke, es hat was mit dem Speicher zu tun, dass der nicht richtig reserviert wird. Wenn ich keine Klasse erstelle (also keine cGame Klasse) funktioniert es übrigens (bis auf das Zeichnen, >.<)


Zuletzt bearbeitet von Luinechor am 22.03.2008, 17:32, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Luinechor
Mini JLI'ler


Alter: 32
Anmeldedatum: 20.03.2008
Beiträge: 5

Medaillen: Keine

BeitragVerfasst am: 21.03.2008, 19:53    Titel: Antworten mit Zitat

So, hab das ganze nun anders probiert. Ungefähr so, wie es auch ebi dem Asteroid-Spiel im Buch gemacht wird. Allerdings habe ich das Problem, dass das Programm beim Zeichnen des Spielers abstürzt.
Also bei ~ Player.Draw();

Hoffe einer könnte da mal drüber schauen.
-> http://rapidshare.com/files/101297228/DirectXProb.rar.html <-

Das ist nämlich so mein einziges Problem, wenn das mal gelöst wäre, würde ich schnellstens Pong programmieren. Very Happy (Hab ich schon mal mit Direct Draw programmiert)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 22.03.2008, 17:04    Titel: Antworten mit Zitat

Hast du vielleicht ein paar mehr Informationen zum Fehler?

Welcher? Wo genau? Wie sieht die entsprechende Codezeile aus? Hast du mal debuggt?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Luinechor
Mini JLI'ler


Alter: 32
Anmeldedatum: 20.03.2008
Beiträge: 5

Medaillen: Keine

BeitragVerfasst am: 22.03.2008, 17:11    Titel: Antworten mit Zitat

Es ist kein Syntaxfehler, das Programm stürzt einfach ab. Von daher kann ich nicht sagen wo genau und wie die Codezeile aussieht (vor allem, da ich auch nicht debuggt habe. Der Debugger will bei mir nicht klappen. Ich benutze als Compiler den Visual 2008 compiler.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 22.03.2008, 17:18    Titel: Antworten mit Zitat

Inwiefern klappt der Debugger nicht?

Wie sieht der Fehler aus? Bluescreen? Eingefroren? Neustart? Fehlermeldung (deren Inhalt?)?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Luinechor
Mini JLI'ler


Alter: 32
Anmeldedatum: 20.03.2008
Beiträge: 5

Medaillen: Keine

BeitragVerfasst am: 22.03.2008, 17:28    Titel: Antworten mit Zitat

Bei CodeBlocks hatte er mir, wenn ich den Debugger anwerfen wollte nur das Programm ausgeführt, ist dann abgestürzt und das wars. So wie in dem Buch klappt es jedenfalls nicht.

Ich habe das Projekt jetzt in Visual C++ EE 2008 erstellt und lasse dort mal den Debugger laufen, wenn ich was neues rausfinde sag ich bescheid.

Der Fehler: "Game.exe hat einen Fehler festgestellt und muss beendet werden..."

Kann man das irgendwie umstellen? Als ich das letzte Programm einen Freund schickte (gleicher Fehler), dann hatte er nämlich einen Fehler mit "Memory..." entgegengeschmissen bekommen.


Update:
"Unbehandelte Ausnahme bei 0x0043a493 in Game.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000."

Zeile: m_lpSprite->Begin(D3DXSPRITE_ALPHABLEND);
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 22.03.2008, 17:37    Titel: Antworten mit Zitat

Der Zeiger lpSprite ist nicht korrekt initialisiert, würde ich behaupten.
Evtl. hatte eine Load Methode einen Fehler und deshalb NULL zurück gegeben.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Luinechor
Mini JLI'ler


Alter: 32
Anmeldedatum: 20.03.2008
Beiträge: 5

Medaillen: Keine

BeitragVerfasst am: 22.03.2008, 17:54    Titel: Antworten mit Zitat

Oh Gott, die Funktion "PlayerInit" wurde gar nicht ausgeführt. Deswegen war m_lpSprite natürlich NULL und das Zeichnen hatte auch nicht geklappt.

Das mir das nicht aufgefallen ist. Fehler macht man... -.-
Nächstes mal kontrollier ich erstmal, ob die FUnktion überhaupt ausgeführt wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum