Я просто хочу визуализировать некоторый текст на экране, используя:
- моногейм 3.0
- MS Visual Studio 2010 C # Экспресс
В XNA вы могли легко добавлять шрифты в конвейер контента. Но в моногаме этого не происходит. Загрузка файлов TTF с помощью Content<SpriteFont>.Load()
не работает. Есть ли способ сгенерировать или загрузить файлы * .spritefont или * .xnb, содержащие данные о шрифтах (без установки XNA)?
Ответы:
Альтернативой является использование предварительно сгенерированных растровых шрифтов. Вот учебник, который я недавно написал об использовании инструмента BMFont для ввода текста в вашу игру с помощью MonoGame.Extended библиотеки .
http://dylanwilson.net/bmfont-rendering-with-monogame-extended
источник
Я столкнулся с той же проблемой, что и вы. К счастью, у меня был существующий проект XNA, который уже использовал файл .spritefont, и сгенерировал файл XNB. Я просто скомпилировал его и скопировал XNB в мой проект MonoGame, и я могу использовать его без проблем.
(Отказ от ответственности: я попытался построить конвейер содержимого XNA для бета-версии MonoGame 3.0 в соответствии с инструкциями, и через несколько часов я сдался; он не включит проект должным образом в Visual Studio.)
источник
По крайней мере, в августе этого года генерация spritefonts еще не поддерживалась MonoGame, однако конвейер контента был в центре внимания в последние несколько месяцев, поэтому я не удивлюсь, если он работает в настоящее время. Конечно, вам нужно знать синтаксис
.spritefont
файла, который необходимо добавить в папку с содержимым. Для этого смотрите в нижней части этого поста.Насколько я могу судить, даже в августе поддерживается загрузка уже скомпилированных spritefonts из файлов XNB. Поскольку вы не хотите устанавливать XNA для генерации этих файлов XNB, вы можете проверить проект компилятора содержимого XNA в codeplex.
Вот пример
.spritefont
файла, чтобы вы могли увидеть, если он в настоящее время поддерживаетсяисточник
Теперь вы можете сделать это, не устанавливая ничего лишнего. В новом проекте MonoGame у вас должен быть
Content.mgcb
файл. Это должно вызвать приложение MonoGame Pipeline. Вы можете щелкнуть правой кнопкой мышиContent
узел в дереве и добавить новый элемент. Выберите «Описание SpriteFont». Это будет правильно скомпилировано, и вы сможете загрузить его в свой код.источник
Проверьте это, ребята, я собираю свои * .spritefont файлы в .xnb для использования в MonoGame, для меня это единственный способ, которым это работает.
Проверьте это, может помочь вам тоже. http://xnacontentcompiler.codeplex.com/
источник
Лучшая альтернатива - предварительно сгенерировать шрифт xnb с помощью XNA, а затем просто использовать его в своем проекте Monogame для Windows, или вы можете сделать старый трюк с получением Window.Handle и экранных координат ScreenToClient, а затем использовать GDI для рисования текста. с System.Drawing.dll.
источник
Я работал над этим уже несколько дней, пытаясь это исправить, и в итоге я заставил себя работать. Я работаю над Windows8, VS2012, MonoGame. я должен добавить, что это как "моноигра Windows OpenGL Pjoject"
Позвольте мне пройти через шаги, которые я предпринял. 1. Я установил monGame для VS2012 2. Я установил WindowsPhone SDK8 3. Я установил XNA 4.0 для своего VS2010
Я не знаю, все ли эти шаги несущественны ....
Так как вы не можете сгенерировать .spritefont в vs2012, я сгенерировал файл spriteFont в своем vs2010, а затем добавил его в свой проект vs2012 .... НО это не сработало. И этим утром я увидел, что URL для этого файла .spritefont был неправильным. Когда я добавил его через обозреватель решений..content -> добавить существующий элемент ..., тогда URL-адрес был неправильным .. "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ Content" это не там, где vs2012, где в поисках моего * .spritefot файла он был здесь ..--> "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ bin \ WindowsGL \ Debug \ Content" я добавил Вручную, и ВАУ это сработало. я вставляю здесь некоторый код, чтобы вы лучше могли видеть, что я сделал .. внутри своего игрового класса я поместил эти переменные
в моем методе loadcontent, автоматически сгенерированном VS
в моем методе розыгрыша, автоматически создан VS
а затем вручную добавили мой файл spritefont в нужную папку
Странно то, что я добавил картинки таким образом, и они оказались в нужной папке, но не в * .spritefont, вы должны вручную добавить их в более позднюю папку, чтобы заставить меня работать ..
Я надеюсь, что кое-что из этого имеет смысл для кого-то, потому что это дало мне самую большую головную боль в эти последние дни. Возможно, я забыл некоторые шаги, и все это может быть бесполезным, но я надеюсь, что я могу ослабить головные боли для некоторых там
И я надеюсь, что monoGame будет обновлен, чтобы исправить эти проблемы ...
источник
Я использовал XNB Builder, чтобы вручную преобразовать их в
.xnb
файлы. Просто запустите приложение, выберите ваши файлы, и оно преобразует их в файлы XNB, которые готовы к использованию с MonoGame.источник