Antwort auf: Wribel

Vektoria Forum Wribel Antwort auf: Wribel

#2875
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