JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Anfänger Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
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

BeitragVerfasst am: 24.07.2006, 15:03    Titel: Anfänger Problem Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 24.07.2006, 15:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr.Matze
Mini JLI'ler


Alter: 33
Anmeldedatum: 05.07.2006
Beiträge: 27
Wohnort: Neustadt a. d. Weinstraße
Medaillen: Keine

BeitragVerfasst am: 24.07.2006, 15:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 24.07.2006, 15:40    Titel: Antworten mit Zitat

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 Smile
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr.Matze
Mini JLI'ler


Alter: 33
Anmeldedatum: 05.07.2006
Beiträge: 27
Wohnort: Neustadt a. d. Weinstraße
Medaillen: Keine

BeitragVerfasst am: 24.07.2006, 15:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
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