Forum-Archiv: Wribel - Nov. 2019

Forum-Archiv: Wribel - Nov. 2019

von gelöscht -
Anzahl Antworten: 1

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);



Als Antwort auf gelöscht

Re: Forum-Archiv: Wribel - Nov. 2019

von gelöscht -
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