JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

JLI Fighter

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


Alter: 37
Anmeldedatum: 30.05.2007
Beiträge: 114
Wohnort: Dortmund
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 13:26    Titel: JLI Fighter Antworten mit Zitat

Huhu JLI Community Smile

Erstmal: Mensch is das schwer das Captcha bei der Registrierung lesen zu können o.O Wie wäre es mit einer lesbaren Schrift Wink
Nun gut, nun bin ich ja hier und ihr werden noch öfter was von mir hören denke ich Wink

Also ich arbeite mit der Visual C++ 2005 Express Edition und mutiger Weise (oder auch net Wink) gleich mit dem April 2007 SDK.

Im prinzip ist es ja möglich, alle Beispielprogramme der 2003er(!) Ausgabe anzupassen, aber bei JLI Fighter komme ich momentan nicht weiter.
Ich habe schon die DRAW Methoden angepasst und aus D3DXVECTOR2 D3DXVECTOR3 gemacht und fehlende Paramter hinzugefügt, etc.
Auch die Bildpfade habe ich angepasst, nur bekomme ich beim starten eine Zugriffsverletzung.

Ich habe hier mal ein Screenshot, mit einigen, evt. wichtigen Infos:
http://img369.imageshack.us/img369/7788/jlifighterabstxi2.png

Könnt ihr mir helfen? Embarassed
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
51m0n
JLI'ler


Alter: 33
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 15:21    Titel: Antworten mit Zitat

Hallo
Der Zeiger auf die Texture ist ein NULLpointer.
Evtl ist beim laden der Texture etwas schief gegangen, oder im ResourceManager ist ein Fehler..

MfG 51m0n
_________________
Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Asto
JLI'ler


Alter: 37
Anmeldedatum: 30.05.2007
Beiträge: 114
Wohnort: Dortmund
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 15:52    Titel: Antworten mit Zitat

hmm möchtet ihr einen bestimmten quellcode ausschnitt sehen? Very Happy
ich hab grad keine idee, wo ich anfangen soll zu suchen Neutral
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
51m0n
JLI'ler


Alter: 33
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 15:55    Titel: Antworten mit Zitat

Wenn du mich so fragst Smile

Der Teil wo du die Methode AddTexture aufrufst und wie du die Texture lädst, bzw. speicherst (ResorceManager?) wären nicht schlecht Wink
_________________
Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Asto
JLI'ler


Alter: 37
Anmeldedatum: 30.05.2007
Beiträge: 114
Wohnort: Dortmund
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 16:19    Titel: Antworten mit Zitat

hmm viele stellen, hast du evt. die Beispieldateien zur Hand von JLIFighter?

aufgerufen wird es z.B. so:
CPP:
        ResourceManager.AddTexture(Filename);
        Player1.AddTexture(STAND,ResourceManager.GetTexture(Filename));


in der klasse RessourceManager:
CPP:
void CResourceManager::AddTexture(LPCSTR lpFileName)
{
    // testen, ob die Textur bereits vorhanden ist
    LPDIRECT3DTEXTURE9 lpTexture = GetTexture(lpFileName);

    // wenn sie nicht vorhanden ist, wird sie wie
    // gewohnt erzeugt
    if(!lpTexture)
    {
        D3DXIMAGE_INFO ImageInfo;
        D3DXGetImageInfoFromFile(lpFileName,&ImageInfo);

        D3DXCreateTextureFromFileEx(m_lpD3DDevice,
                                    lpFileName,
                                    ImageInfo.Width,
                                    ImageInfo.Height,
                                    1,0,
                                    D3DFMT_UNKNOWN,
                                    D3DPOOL_MANAGED,
                                    D3DX_FILTER_NONE,
                                    D3DX_FILTER_NONE,
                                    0,0,0,
                                    &lpTexture);

        // und in die Map unter ihrem Namen eingefügt
        m_MapTextures[lpFileName] = lpTexture;
    }
}


in der Klasse CSprite (Player1 ist ein Objekt des Typs):
CPP:
void CSprite::AddTexture(ANIMATION Anim, LPDIRECT3DTEXTURE9 lpTexture)
{
    // Beschreibung des zu Grunde liegenden Surfaces
    D3DSURFACE_DESC desc;

    lpTexture->GetLevelDesc(0,&desc);
   
    // Breite und Höhe speichern
    m_Width  = desc.Width;
    m_Height = desc.Height;
   
    m_vRotationCenter = D3DXVECTOR3((float)m_Width/2, (float)m_Height/2, 0);

    // Zeiger auf die Textur in der
    // passenden Sequenz speichern
    m_vAnimationSequences[Anim].push_back(lpTexture);
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
51m0n
JLI'ler


Alter: 33
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 16:27    Titel: Antworten mit Zitat

hm...
Hast du mal überprüft, ob die D3DXGetImageInfoFromFile oder D3DXCreateTextureFromFileEx Funktion fehl schlägt?

Exestiert die Datei?
_________________
Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 31.05.2007, 17:19    Titel: Antworten mit Zitat

ich würde dir empfehlen, mal deine AddTexture funktion folgendermaßen anzupassen, um auf Fehler zu überprüfen:
GreatFlo hat Folgendes geschrieben:

CPP:
         
HRESULT hr = D3DXCreateTextureFromFileEx(m_lpD3DDevice,
                                    lpFileName,
                                    ImageInfo.Width,
                                    ImageInfo.Height,
                                    1,0,
                                    D3DFMT_UNKNOWN,
                                    D3DPOOL_MANAGED,
                                    D3DX_FILTER_NONE,
                                    D3DX_FILTER_NONE,
                                    0,0,0,
                                    &lpTexture);

        if( hr != D3D_OK )
                 MessageBox( NULL, DXGetErrorString9(hr), TEXT("error"), MB_OK );


Dann siehst ob und was für ein Fehler evtl. vorgefallen ist. Für die Funktion DXGetErrorString9 musst du btw auch noch dxerr9.lib linken und dxerr9.h inkludieren, falls du das noch nicht hast (äußert sich in einem LNK-Error)

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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