Ich kann ein Sprite-Blatt verwenden, um automatisch eine benutzerdefinierte Schriftart zu verwenden. Was ich jedoch tun möchte, ist, mehrere Versionen jedes Buchstabens zu haben, so dass die Buchstaben variiert werden können und natürlicher aussehen (a la Handschrift). Ich weiß nicht genau, wie Schriftarten intern implementiert werden, aber ich gehe davon aus, dass es einige Funktionen gibt, die Zeichen Zeichen zuordnen. Es scheint, als wäre es nicht schwierig, diese Funktion zufällig auszuwählen, wenn diese Funktion nicht versiegelt ist, eines der "gleichen" Bilder (mit geringfügigen Abweichungen) auszuwählen.
Kennt jemand die Plausibilität dieses / welchen Codes würde ich überladen wollen, damit dies mit der vorhandenen Schriftinfrastruktur in xna funktioniert?
quelle
Antworten:
Grundsätzlich ist dies nur eine Programmierfrage, wenn Sie dies abstrahieren. Wenn Sie dies wirklich mit Sprite-Blättern tun möchten, kann ich dies in einem schnellen Pseudocode im JavaScript-Stil tun ...
Ich habe nur ein Beispiel für Kleinbuchstaben eingegeben, sodass Sie bei Bedarf weitere hinzufügen müssen. Es wird auch eine Funktion "get_letter_sprite" angenommen, die bei Übergabe eines X- und Y-Offsets ein Sprite an der angegebenen Stelle von einem Sprite-Blatt (aus Buchstaben) zurückgibt.
quelle
Ich habe das noch nicht ausprobiert, daher wären einige Experimente erforderlich, um festzustellen, ob es tatsächlich funktioniert.
Was ich tun würde:
Beginnen Sie mit einem vektorisierten Format, das der Zeichenrichtung folgt. Beispielsweise könnten die Hershey-Schriftarten - die Schriftarten "scripts" und "scriptc" - ein guter Ausgangspunkt sein:
Anstatt die Schriftarten als Liniensegmente zu zeichnen, rendern Sie sie als Splines. Schätzen Sie die Geschwindigkeit des Stifts und das Über- / Unterschießen durch zufällige (oder periodische) Beträge. Versuchen Sie, Fehler zu korrigieren, wie Sie es beim eigentlichen Schreiben tun würden (damit sich die Fehler im Text nicht zufällig zusammenballen).
Wenn Sie dies ausprobieren, würde ich gerne die Ergebnisse sehen =)
quelle