 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mr.Matze Mini JLI'ler

Alter: 33 Anmeldedatum: 05.07.2006 Beiträge: 27 Wohnort: Neustadt a. d. Weinstraße Medaillen: Keine
|
Verfasst am: 24.07.2006, 15:03 Titel: Anfänger Problem |
|
|
Hi,
ich versuche die Direct3D Klasse aus dem Buch so zu erweitern, dass man Fonts in einer Map speichern kann. Leider funzt das net. Ich habe echt k.A. wieso sollte man aber an den Fehlern im Debugger erkennen. Ich weiß, dass es passieren kann, dass ein Eintrag in der Map überschrieben wird aber das will ich ncoh ändern. Hier meine Funktion:
Code: |
void CDirect3D::AddFont(std::string FontName)
{
// Struktur für die Beschreibung der Schriftart
// anlegen und Elemente mit 0 initialisieren
LOGFONT LogFont = { 0 };
// das Element lfFaceName muss den Namen der
// gewünschten Schriftart enthalten
strcpy(LogFont.lfFaceName, FontName.c_str());
LPD3DXFONT lpFont;
// nach erfolgreichem Aufruf zeigt lpFont
// auf ein Objekt vom Typ D3DXFont
D3DXCreateFontIndirect(m_lpD3DDevice,
&LogFont,
&lpFont);
m_lpD3DFontMap[FontName] = lpFont;
}
|
Und hier noch der Link zum gesamten Code;
http://rafb.net/paste/results/fB48yp69.html
danke für Hilfe
Grüße _________________ Bitte besucht meine Webiste:
www.m-soft.de.tp
www.der-sternschnuppen-gruss.de.tp |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 24.07.2006, 15:15 Titel: |
|
|
Funktioniert sowas überhaupt?
strcpy(m_current_lpD3DFont, FontName);
das hier reicht vollkommen aus:
m_current_lpD3DFont = FontName;
Wieso fügst du bei SetFont eigentlich den Arial Font hinzu? sowas macht man eher beim initialisieren/Erstellen.
Evtl solltest du auch mal schaun ob bei AddFont der Font schon hinzugefügt wurde sowas sorgt für mehr Sicherheit (Font wurde bereits erstellt und wird überschrieben haha MemoryLeak)
Beim Zeichnen mit dem Font selbst würde ich auch nachprüfen ob es den Font überhaupt gibt und dementsprechend handeln.
Beim erstellen deiner Fonts kommt es mir etwas wenig vor was du da machst, ist das denn wirklich korrekt so?
Ansonsten probiere mal folgendes:
CPP: | HDC Dc = GetDC( NULL );
int lLogPixelsY = GetDeviceCaps(Dc, LOGPIXELSY);
ReleaseDC( NULL, lDc );
int Height = -9 * LogPixelsY / 72;
HRESULT Result = D3DXCreateFont( m_Device,
Height,
0,
FW_NORMAL,
1,
FALSE,
DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
FontName,
&m_Font); |
_________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Mr.Matze Mini JLI'ler

Alter: 33 Anmeldedatum: 05.07.2006 Beiträge: 27 Wohnort: Neustadt a. d. Weinstraße Medaillen: Keine
|
Verfasst am: 24.07.2006, 15:31 Titel: |
|
|
Ja, das stand so im Buch.. Ich hab nur die Map hinzugefügt und will auch noch mehr dazu machen, aber das geht nur wenn der Rest auch funzt.
Und das mit dem Font, ob es den schon gibt, wird net geprüft, hab ich auch gesagt. Aber ich lade den Font nur einmal.
Edit.: Die Funtionen unterscheiden sich, glaube ich, nur darin, dass du die Font Structur direkt bei der Funktion übergibst und ich mach das halt über ne Structur.
_________________ Bitte besucht meine Webiste:
www.m-soft.de.tp
www.der-sternschnuppen-gruss.de.tp
Zuletzt bearbeitet von Mr.Matze am 24.07.2006, 15:40, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 24.07.2006, 15:40 Titel: |
|
|
Ahh jezz sehe ich erst dein Problem deine map erwartet LPD3DXFONT* du übergibst ihr aber nur LPD3DXFONT
std::map < std::string,LPD3DXFONT* > m_lpD3DFontMap;
du solltest daher deine map so umändern
std::map <std::string, LPD3DXFONT> m_lpD3DFontMap;
Edit: Du hättest übrigens auch deine Fehlermeldungen hier posten können. Sowas erleichtert die suche enorm  _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
Mr.Matze Mini JLI'ler

Alter: 33 Anmeldedatum: 05.07.2006 Beiträge: 27 Wohnort: Neustadt a. d. Weinstraße Medaillen: Keine
|
Verfasst am: 24.07.2006, 15:43 Titel: |
|
|
Danke habe den Fehler gefunden. Es war der den du beschrieben hast und die Methode Draw erwartet einen char und ich habe einen String übergeben.
Danke
Grüße _________________ Bitte besucht meine Webiste:
www.m-soft.de.tp
www.der-sternschnuppen-gruss.de.tp |
|
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
|