Ich möchte nur Text auf dem Bildschirm rendern, indem ich Folgendes verwende:
- Monogame 3.0
- MS Visual Studio 2010 C # Express
In XNA konnten Sie der Inhaltspipeline ganz einfach Schriftarten hinzufügen. Dies scheint jedoch im Monogame nicht der Fall zu sein. Laden von TTF-Dateien mitContent<SpriteFont>.Load()
funktioniert nicht. Gibt es eine Möglichkeit, * .spritefont-Dateien oder * .xnb-Dateien mit den Schriftartdaten zu generieren oder herunterzuladen (ohne XNA installieren zu müssen)?
Antworten:
Eine Alternative besteht darin, stattdessen vorgenerierte Bitmap-Schriftarten zu verwenden. Hier ist ein Tutorial, das ich vor einiger Zeit über die Verwendung des BMFont-Tools geschrieben habe, um mit MonoGame.Extended Text in Ihr Spiel zu bringen Bibliothek .
http://dylanwilson.net/bmfont-rendering-with-monogame-extended
quelle
Ich bin auf dasselbe Problem gestoßen wie du. Zum Glück hatte ich ein vorhandenes XNA-Projekt, das bereits eine .spritefont-Datei verwendet und die XNB-Datei generiert hat. Ich habe es gerade kompiliert und das XNB in mein MonoGame-Projekt kopiert, und ich kann es ohne Probleme verwenden.
(Haftungsausschluss: Ich habe versucht, die XNA-Inhaltspipeline für MonoGame 3.0 Beta gemäß den Anweisungen zu erstellen, und nach ein paar Stunden habe ich aufgegeben. Das Projekt wurde in Visual Studio nicht ordnungsgemäß aufgenommen.)
quelle
Zumindest im August dieses Jahres wurde das Generieren von Spritefonts noch nicht von MonoGame unterstützt, jedoch stand in den letzten Monaten die Content-Pipeline im Mittelpunkt des Interesses, sodass ich mich nicht wundern würde, wenn es derzeit funktioniert. Natürlich müssen Sie die Syntax von a kennen
.spritefont
Datei kennen, die Ihrem Inhaltsordner hinzugefügt werden muss. Siehe dazu den unteren Rand dieses Beitrags.Soweit ich weiß, wird bereits im August das Laden bereits kompilierter Spritefonts aus XNB-Dateien unterstützt. Da Sie XNA nicht installieren möchten, um diese XNB-Dateien zu generieren, sollten Sie das XNA Content Compiler-Projekt auf Codeplex überprüfen.
Hier ist eine Beispieldatei
.spritefont
, damit Sie sehen können, ob sie derzeit unterstützt wirdquelle
Sie können dies jetzt ohne zusätzliche Installation tun. In einem brandneuen MonoGame-Projekt sollten Sie eine
Content.mgcb
Datei haben. Daraufhin sollte die MonoGame Pipeline-App angezeigt werden. Sie können mit der rechten Maustaste auf denContent
Knoten in der Baumstruktur klicken und ein neues Element hinzufügen. Wählen Sie "SpriteFont Description". Das wird korrekt kompiliert und Sie sollten in der Lage sein, es in Ihren Code zu laden.quelle
Ich habe meine * .spritefont-Dateien für die Verwendung in MonoGame in .xnb kompiliert. Für mich ist dies die einzige Möglichkeit, wie es funktioniert hat.
Probieren Sie es aus, könnte Ihnen auch helfen. http://xnacontentcompiler.codeplex.com/
quelle
Die beste Alternative ist, die Schriftart xnb über XNA vorab zu generieren und sie dann in Ihrem Monogame für Windows-Projekt zu verwenden. Sie können auch den alten Trick ausführen, indem Sie Window.Handle und die Bildschirmkoordinaten ScreenToClient abrufen und dann den GDI zum Zeichnen Ihres Texts verwenden mit der System.Drawing.dll.
quelle
Ich arbeite jetzt seit einigen Tagen daran und versuche, dies zu beheben, und irgendwann habe ich mich an die Arbeit gemacht. Was ich arbeite, ist Windows8, VS2012, MonoGame. Ich sollte hinzufügen, dass dies als "MonoGame Windows OpenGL Pjoject" ist
Lassen Sie sich von mir durch die Schritte führen, die ich unternommen habe. 1. Ich habe monGame für VS2012 installiert. 2. Ich habe WindowsPhone SDK8 installiert. 3. Ich habe XNA 4.0 für mein VS2010 installiert
Ich weiß nicht, ob all diese Schritte notwendig sind ...
Da Sie in vs2012 keine .spritefont-Datei generieren können, habe ich in vs2010 eine spriteFont-Datei generiert und dann i zu meinem vs2012-Projekt hinzugefügt .... ABER es hat nicht funktioniert. Und heute Morgen habe ich gesehen, dass die URL für diese .spritefont-Datei falsch war. Wenn ich es über den Solution Explorer hinzugefügt habe ... Inhalt -> Vorhandenes Element hinzufügen ... dann war die URL falsch. "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ Content" ist dies nicht wo vs2012 wo nach meiner * .spritefot-Datei gesucht wurde hier ..--> "C: \ Benutzer \ admin \ Dokumente \ Visual Studio 2012 \ Projekte \ MyGame \ MyGame \ bin \ WindowsGL \ Debug \ Content" manully, und wow, es hat funktioniert. Ich füge hier etwas Code ein, damit du besser sehen kannst, was ich getan habe. In meiner Spielklasse setze ich diese Variablen
In meiner Loadcontent-Methode wurde von VS autogeneriert
In meiner Draw-Methode wurde von VS autogeneriert
und dann manuell meine Spritefont-Datei in den richtigen Ordner hinzugefügt
Das Seltsame ist, dass ich Bilder auf diese Weise hinzugefügt habe und sie im richtigen Ordner, aber nicht im * .spritefont gelandet sind. Sie müssen sie im späteren Ordner manuell hinzufügen, damit ich arbeiten kann.
Ich hoffe, dass einiges davon für jemanden Sinn ergibt, da mir dies in den letzten Tagen die größten Kopfschmerzen bereitet hat. Ich habe vielleicht einige Schritte vergessen und all dies mag nutzlos sein, aber ich hoffe, dass ich die Kopfschmerzen für einige da draußen lindern kann
Und ich hoffe, dass monoGame aktualisiert wird, um diese Probleme zu beheben ...
quelle
Ich habe XNB Builder verwendet , um sie manuell in
.xnb
Dateien zu konvertieren . Starten Sie einfach die App, wählen Sie Ihre Dateien aus und sie werden in XNB-Dateien konvertiert, die mit MonoGame verwendet werden können.quelle