Wribel

Vektoria Forum Wribel

Dieses Thema enthält 1 Antwort und 1 Teilnehmer. Es wurde zuletzt aktualisiert von  Tobi 30. November 2019 - 13:17.

Ansicht von 2 Beiträgen - 1 bis 2 (von insgesamt 2)
  • Autor
    Beiträge
  • #2869 Antwort

    Charger

    Hallo,

    Ich würde gerne ein 3D Textfeld über ein Objekt platzieren. Ich sehe schon ein schwarzes Textfeld und der weiße Text „Test“ scheint grundsätzlich da zu sein, ist aber nicht lesbar/verzerrt… Was mache ich falsch?

    Ciao!

    
    m_CWritingFontsprechblase.LoadPreset("RodWhite");
    m_CWribelsprechblase.Init(CFloatRect(0, 0, 10, 10), 40, &m_CWritingFontsprechblase);
    m_CWribelsprechblase.PrintString("Test");
    m_CPlacementsprechblase.Translate(-5, 5, 0);
    m_p.AddPlacement(&m_CPlacementsprechblase);
    m_CPlacementsprechblase.AddWribel(&m_CWribelsprechblase);
    
    #2875 Antwort

    Tobi

    Hallo Charger,

    der Fehler liegt darin, dass in der Initialisierungsmethode Platz für 40 Buchstaben reserviert wurde, aber das Wort „Test“ nur 4 Buchstaben hat. Somit werden die Buchstaben nur auf den linken 10% der Fläche verteilt, was etwas schräg aussieht, vermutlich lassen sie die Buchstaben noch nicht mal als solche erkennen.

    Besser wäre es, wenn tatsächlich nur die 4 Buchstaben reserviert würden, die du auch benötigst, also:

    m_CWribelsprechblase.Init(CFloatRect(0, 0, 10, 10), 4, &m_CWritingFontsprechblase);

    Alternativ könntest du das CFloatRect auch in die Breite ziehen, z.B. CFloatRect(0, 0, 100, 10), so dass die Grundfläche des Textes auseinandergezogen wird. Letzteres Vorgehen ist dann zu empfehlen, wenn die Anzahlen der Buchstaben stark schwanken.

    Hier noch zwei zusätzliche Tipps zu Wribels:

    1.) Falls du willst, dass nur der Test sichtbar ist, ohne schwarzen Hintergrundbalken, schalte das ChromaKeying für das Font an, also:

    m_CWritingFontsprechblase.LoadPreset("RodWhite");
    m_CWritingFontsprechblase.SetChromaKeyingOn();
    m_CWribelsprechblase.Init(CFloatRect(0, 0, 10, 10), 4, &m_CWritingFontsprechblase);

    2.) Du brauchst nicht unbedingt ein dazwischen geschaltetes Placement, da CWribel schon von CPlacement abgeleitet ist. Daher kannst du die Translation direkt auf dem Wribel ausführen:

    m_CWritingFontsprechblase.LoadPreset("RodWhite");
    m_CWritingFontsprechblase.SetChromaKeyingOn();
    m_CWribelsprechblase.Init(CFloatRect(0, 0, 10, 10), 4, &m_CWritingFontsprechblase);
    m_CWribelsprechblase.PrintString("Test");
    m_CWribelsprechblase.Translate(-5, 5, 0);
    m_p.AddWribel(&m_CWribelsprechblase);

    Viel Spaß damit!
    Tobi

Ansicht von 2 Beiträgen - 1 bis 2 (von insgesamt 2)
Antwort auf: Wribel
Deine Information: