|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 31.05.2007, 13:26 Titel: JLI Fighter |
|
|
Huhu JLI Community
Erstmal: Mensch is das schwer das Captcha bei der Registrierung lesen zu können o.O Wie wäre es mit einer lesbaren Schrift
Nun gut, nun bin ich ja hier und ihr werden noch öfter was von mir hören denke ich
Also ich arbeite mit der Visual C++ 2005 Express Edition und mutiger Weise (oder auch net ) 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? |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 31.05.2007, 15:21 Titel: |
|
|
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 |
|
|
Asto JLI'ler
Alter: 37 Anmeldedatum: 30.05.2007 Beiträge: 114 Wohnort: Dortmund Medaillen: Keine
|
Verfasst am: 31.05.2007, 15:52 Titel: |
|
|
hmm möchtet ihr einen bestimmten quellcode ausschnitt sehen?
ich hab grad keine idee, wo ich anfangen soll zu suchen |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 31.05.2007, 15:55 Titel: |
|
|
Wenn du mich so fragst
Der Teil wo du die Methode AddTexture aufrufst und wie du die Texture lädst, bzw. speicherst (ResorceManager?) wären nicht schlecht _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
Asto JLI'ler
Alter: 37 Anmeldedatum: 30.05.2007 Beiträge: 114 Wohnort: Dortmund Medaillen: Keine
|
Verfasst am: 31.05.2007, 16:19 Titel: |
|
|
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 |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 31.05.2007, 16:27 Titel: |
|
|
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 |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 31.05.2007, 17:19 Titel: |
|
|
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 |
|
|
|
|
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
|