Solo quiero representar algo de texto en la pantalla usando:
- monogame 3.0
- MS Visual Studio 2010 C # Express
En XNA, pudo agregar fuentes a la canalización de contenido con bastante facilidad. Pero este no parece ser el caso en el monojuego. La carga de archivos TTF usando Content<SpriteFont>.Load()
no funciona. ¿Hay alguna forma de generar o descargar archivos * .spritefont o archivos * .xnb que contienen los datos de la fuente (sin recurrir a la instalación de XNA)?
Respuestas:
Una alternativa es utilizar fuentes de mapa de bits generadas previamente en su lugar. Aquí hay un tutorial que escribí hace un tiempo sobre el uso de la herramienta BMFont para obtener texto en su juego usando el biblioteca MonoGame.Extended .
http://dylanwilson.net/bmfont-rendering-with-monogame-extended
fuente
Me encontré con el mismo problema que tú. Afortunadamente, tenía un proyecto XNA existente que ya usaba un archivo .spritefont y generaba el archivo XNB. Lo acabo de compilar y copié el XNB en mi proyecto MonoGame, y puedo usarlo sin ningún problema.
(Descargo de responsabilidad: intenté construir la canalización de contenido XNA para MonoGame 3.0 beta según las instrucciones, y después de unas horas, me di por vencido; no incluiría el proyecto correctamente en Visual Studio).
fuente
Al menos en agosto de este año , MonoGame todavía no era compatible con la generación de spritefonts, sin embargo, la canalización de contenido fue el principal foco de atención en los últimos meses, por lo que no me sorprendería si funciona actualmente. Por supuesto, debe conocer la sintaxis de un
.spritefont
archivo que debe agregarse a su carpeta de contenido. Para eso ver el final de esta publicación.Por lo que puedo decir, incluso en agosto, se admite la carga de spritefonts ya compilados de archivos XNB. Dado que no desea instalar XNA para generar estos archivos XNB, es posible que desee verificar el Proyecto Compilador de Contenido XNA en codeplex.
Aquí hay un
.spritefont
archivo de ejemplo para que pueda ver si actualmente es compatiblefuente
Ahora puede hacer esto sin instalar nada adicional. En un nuevo proyecto de MonoGame, debe tener un
Content.mgcb
archivo. Eso debería abrir la aplicación MonoGame Pipeline. Puede hacer clic derecho en elContent
nodo en el árbol y agregar un nuevo elemento. Seleccione `Descripción de SpriteFont '. Eso se compilará correctamente y debería poder cargarlo en su código.fuente
Miren esto chicos, he estado compilando mis archivos * .spritefont a .xnb para usarlos en MonoGame, para mí, es la única forma en que funcionó.
Compruébalo, también podría ayudarte. http://xnacontentcompiler.codeplex.com/
fuente
La mejor alternativa es pregenerar la fuente xnb a través de XNA primero y luego usarla en su proyecto Monogame para Windows o puede hacer el viejo truco de obtener Window.Handle y la pantalla coordina ScreenToClient y luego usar el GDI para dibujar su texto con el System.Drawing.dll.
fuente
He estado trabajando en esto durante varios días, tratando de arreglarlo y finalmente pude trabajar. En lo que estoy trabajando es en Windows8, VS2012, MonoGame. Debo agregar que esto es como "monoGame Windows OpenGL Pjoject"
Déjame llevarte a través de los pasos que he tomado. 1. Instalé monGame para VS2012 2. Instalé WindowsPhone SDK8 3. Instalé XNA 4.0 para mi VS2010
No sé si todos estos pasos son nessecery ...
Debido a que no puede generar un .spritefont en vs2012, generé un archivo spriteFont en mi vs2010 y luego agregué i a mi proyecto vs2012 ... PERO no funcionó. Y esta mañana vi que la URL de ese archivo .spritefont estaba equivocada. Cuando lo agregué a través del explorador de soluciones ... contenido -> agregar un elemento existente ... entonces la url estaba equivocada ... "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ Content" esto es no donde vs2012 donde estaba buscando mi archivo * .spritefot estaba aquí ..--> "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ bin \ WindowsGL \ Debug \ Content" agregué i manully, y GUAU funcionó. pego algo de código aquí para que puedas ver lo que he hecho ... dentro de mi clase de juego pongo estas variables
en mi método loadcontent autogenerado por VS era
en mi método de dibujo autogenerado por VS era
y luego agregué mi archivo spritefont en la carpeta correcta
Lo extraño es que agregué imágenes de esta manera y terminé en la carpeta correcta, pero no en la * .spritefont, tienes que agregarla manualmente en la carpeta posterior para que trabaje.
Espero que algo de esto tenga sentido para alguien porque esto me ha dado el mayor dolor de cabeza en estos últimos días. Puede que haya olvidado algunos pasos y todo esto puede ser inútil, pero espero que pueda aliviar los dolores de cabeza para algunos.
Y espero que monoGame se actualice para solucionar estos problemas ...
fuente
He usado XNB Builder para convertirlos manualmente en
.xnb
archivos. Simplemente ejecute la aplicación, elija sus archivos y los convertirá en archivos XNB que están listos para usar con MonoGame.fuente