JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Textausrichtung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
addict
Mini JLI'ler



Anmeldedatum: 27.04.2005
Beiträge: 21

Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 19:47    Titel: Textausrichtung Antworten mit Zitat

Ich ich bin in DirectX an einer Konsole programmieren.
Mein Problem ist es, dass ich einen String habe, wo der ganze Konsolentext drinsteht. (Einfach für die Ausgabe) Ich füge einfach immer bei einem Enter ein "\n" ein. Jedoch wird der Text dann in der nächsten Zeile nicht wieder vorne sondern unterhalb des alten Textes angezeigt. Wie kann ich aber die neue Zeile wieder links ausrichten????
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:16    Titel: Antworten mit Zitat

CPP:
if (c == '\n')
{
    y_offset += character_height;
    x_offset = 0; // <<<<
}

_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
addict
Mini JLI'ler



Anmeldedatum: 27.04.2005
Beiträge: 21

Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:20    Titel: Antworten mit Zitat

Wo füge ich dies ein?
Sind diese y_offset fertigdefinierte Variablen von DirectX???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:22    Titel: Antworten mit Zitat

Nein, es sollte eher zum Denken anregen. Direct3D stopft Dir nicht alles in Deinen Po, etwas Gribs muss man auch dafür aufbringen!

Tipp: wie gibst Du denn Deinen Text aus?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
addict
Mini JLI'ler



Anmeldedatum: 27.04.2005
Beiträge: 21

Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:24    Titel: Antworten mit Zitat

Ich bin noch ganz neu in der DirectX-Welt und habe noch keine Erfahrung!

Hier die Textausgabe:
Code:

void CDirect3D::DrawText(LPCSTR Text, int x, int y, D3DCOLOR TextColor)
{
    RECT r = { x, y, 0, 0 };

    // Größe des Rechtecks berechnen
    m_lpD3DFont->DrawText(Text, -1, &r, DT_CALCRECT, TextColor);

    // Text ausgeben
    m_lpD3DFont->DrawText(Text, -1, &r, DT_CENTER, TextColor); 
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:27    Titel: Antworten mit Zitat

Hmn, Du willst eine Console bauen alá Quake und benutzt dafür D3DX? Hmn....

http://irc.linuxforen.de/patrick/dxtut/buttons.zip << Textausgabe ohne D3DX, da siehste wie man das schneller machen kann und seine eigenen Features einbauen kann Wink
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:31    Titel: Antworten mit Zitat

addict hat Folgendes geschrieben:
Ich bin noch ganz neu in der DirectX-Welt und habe noch keine Erfahrung!

Hier die Textausgabe:
Code:

void CDirect3D::DrawText(LPCSTR Text, int x, int y, D3DCOLOR TextColor)
{
    RECT r = { x, y, 0, 0 };

    // Größe des Rechtecks berechnen
    m_lpD3DFont->DrawText(Text, -1, &r, DT_CALCRECT, TextColor);

    // Text ausgeben
    m_lpD3DFont->DrawText(Text, -1, &r, DT_CENTER, TextColor); 
}

D3DX zu benutzen ist vollkommen in Ordnung. Es erleichtert einem in vielerlei Hinsicht das Programmieren. Besonders beim Einstieg ins Programmieren.

Poste mal ein bisschen mehr Code. Am besten den Teil, wo du du die Funktion DrawText aufrufst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
addict
Mini JLI'ler



Anmeldedatum: 27.04.2005
Beiträge: 21

Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:34    Titel: Antworten mit Zitat

OK
Ich kann schon programmieren nur habe ich bis jetzt nur mit MFC- programmiert....

OK
Hier der Aufruf:
Code:

Direct3D.DrawText("Gismo>"+a_konsolentext[i_zeile],255,165,D3DCOLOR_XRGB(255,255,255));


Dies ist das erstellen der Schrift:
Code:

void CDirect3D::CreateFont(void)
{
    // 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, "Arial");

   LogFont.lfHeight=11;
   LogFont.lfWidth=6;

    // nach erfolgreichem Aufruf zeigt lpD3DFont
    // auf ein Objekt vom Typ D3DXFont
    D3DXCreateFontIndirect(m_lpD3DDevice,
                           &LogFont,
                           &m_lpD3DFont);
                     
}


Ich hoffe dies hilft ein wenig bei meinem Problem...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:37    Titel: Antworten mit Zitat

Gib mal als Parameter nicht DT_CENTER an sondern DT_LEFT
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
addict
Mini JLI'ler



Anmeldedatum: 27.04.2005
Beiträge: 21

Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:43    Titel: Antworten mit Zitat

Vielen Dank! Habe ich wohl übersehen oder nicht mehr daran gedacht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 20:49    Titel: Antworten mit Zitat

addict hat Folgendes geschrieben:
Vielen Dank! Habe ich wohl übersehen oder nicht mehr daran gedacht!


Code:

                                 ,--------------------------,
                         /|  /|  |                          |
                         ||__||  |       erst denken,       |
                        /   O O\__       dann nachgucken,   |
                       /          \      dann erst fragen   |
                      /      \     \                        |
                     /   _    \     \ ----------------------´
                    /    |\____\     \     ||
                   /     | | | |\____/     ||
                  /       \|_|_|/   |    __||
                 /  /  \            |____| ||
                /   |   | /|        |      --|
                |   |   |//         |____  --|
         * _    |  |_|_|_|          |     \-/
      *-- _--\ _ \     //           |
        /  _     \\ _ //   |        /
      *  /   \_ /- | -     |       |
        *      ___ c_c_c_C/ \C_c_c_c____________
Very HappyVery HappyVery Happy
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 21:32    Titel: Antworten mit Zitat

Etwas am Rande:
http://www.c-plusplus.de/forum/viewtopic-var-p-is-781937.html#781937
http://www.c-plusplus.de/forum/viewtopic-var-t-is-108944.html

Mit Crossposting macht man sich nicht sehr beliebt. Confused Genau das selbe mit der Tastaturabfrage. 1 Forum posten und fertig, erst wenn Dir da nach 24-48 Stunden nicht geholfen werden konnte/wurde dann erst ein anderes Forum nehmen und bitte nicht den selben Text. Evil or Very Mad
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 21:36    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
[...]und bitte nicht den selben Text. Evil or Very Mad

und die gleichen Fehler im Text. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 05.05.2005, 10:04    Titel: Antworten mit Zitat

Die Qualitätdifferenzen der Antworten sind faszinierend^^
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
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 -> DirectX, OpenGL 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