Chcę tylko wyrenderować tekst na ekranie za pomocą:
- monogame 3.0
- MS Visual Studio 2010 C # Express
W XNA można dość łatwo dodawać czcionki do potoku zawartości. Ale wydaje się, że tak nie jest w monogame. Ładowanie plików TTF przy użyciu Content<SpriteFont>.Load()
nie działa. Czy jest jakiś sposób na wygenerowanie lub pobranie plików * .spritefont lub plików * .xnb zawierających dane czcionki (bez konieczności instalowania XNA)?
Odpowiedzi:
Alternatywą jest użycie wstępnie wygenerowanych czcionek bitmapowych. Oto samouczek, który napisałem jakiś czas temu na temat używania narzędzia BMFont do wprowadzania tekstu do gry za pomocą biblioteki MonoGame.Extended .
http://dylanwilson.net/bmfont-rendering-with-monogame-extended
źródło
Wpadłem na ten sam problem co ty. Na szczęście miałem istniejący projekt XNA, który używał już pliku .spritefont i wygenerowałem plik XNB. Właśnie go skompilowałem i skopiowałem XNB do mojego projektu MonoGame i mogę go używać bez żadnych problemów.
(Zastrzeżenie: Próbowałem zbudować potok zawartości XNA dla MonoGame 3.0 beta zgodnie z instrukcjami, a po kilku godzinach poddałem się; nie uwzględniałby poprawnie projektu w Visual Studio.)
źródło
Przynajmniej w sierpniu tego roku generowanie spritefontów nie było jeszcze wspierane przez MonoGame, jednak strumień treści był głównym przedmiotem uwagi w ostatnich miesiącach, więc nie zdziwiłbym się, gdyby działał. Oczywiście musisz znać składnię
.spritefont
pliku, który należy dodać do folderu zawartości. W tym celu zobacz na dole tego postu.O ile wiem, nawet w sierpniu obsługiwane jest ładowanie już skompilowanych ikonek z plików XNB. Ponieważ nie chcesz instalować XNA do generowania tych plików XNB, możesz sprawdzić Projekt XNA Content Compiler Project na codeplex.
Oto przykładowy
.spritefont
plik, dzięki któremu możesz sprawdzić, czy jest on obecnie obsługiwanyźródło
Możesz to teraz zrobić bez instalowania żadnych dodatkowych elementów. W nowym projekcie MonoGame powinieneś mieć
Content.mgcb
plik. To powinno wywołać aplikację MonoGame Pipeline. Możesz kliknąć prawym przyciskiem myszyContent
węzeł w drzewie i dodać nowy element. Wybierz `SpriteFont Description '. To zostanie poprawnie skompilowane i powinieneś być w stanie załadować go do swojego kodu.źródło
Zobaczcie chłopaki, kompilowałem moje pliki * .spritefont do .xnb do użytku w MonoGame, dla mnie to jedyny sposób, w jaki działało.
Sprawdź to, może ci również pomóc. http://xnacontentcompiler.codeplex.com/
źródło
Najlepszą alternatywą jest wcześniejsze wygenerowanie czcionki xnb za pomocą XNA, a następnie użycie jej w projekcie Monogame dla Windows lub można wykonać starą sztuczkę polegającą na uzyskaniu okna. Uchwyt i współrzędne ekranu ScreenToClient następnie użyj GDI do narysowania tekstu z System.Drawing.dll.
źródło
Pracuję nad tym od kilku dni, próbując to naprawić i ostatecznie mam pracę. To, nad czym pracuję, to Windows8, VS2012, MonoGame. powinienem dodać, że jest to „monoGame Windows OpenGL Pjoject”
Pozwól, że przeprowadzę cię przez kroki, które podjąłem. 1. Zainstalowałem monGame dla VS2012 2. Zainstalowałem WindowsPhone SDK8 3. Zainstalowałem XNA 4.0 dla mojego VS2010
Nie wiem, czy wszystkie te kroki są nessecery ....
Więc nie można wygenerować .spritefont w vs2012 Wygenerowałem plik spriteFont w moim vs2010, a następnie dodałem i do mojego projektu vs2012 .... ALE to nie działało. I dziś rano zobaczyłem, że adres URL tego pliku .spritefont jest nieprawidłowy. Kiedy dodałem go za pomocą eksploratora rozwiązań ... zawartość -> dodaj istniejący element ... wtedy adres URL był nieprawidłowy .. "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ Content" to jest nie gdzie vs2012, gdzie szukałem mojego pliku * .spritefot, było tutaj .. -> "C: \ Users \ admin \ Documents \ Visual Studio 2012 \ Projects \ MyGame \ MyGame \ bin \ WindowsGL \ Debug \ Content" Dodałem i manully i WOW to działało. wklejam tutaj trochę kodu, żebyś mógł lepiej zobaczyć, co zrobiłem. W mojej klasie gry umieściłem te zmienne
w mojej metodzie loadcontent wygenerowanej automatycznie przez VS był
w mojej metodzie losowania wygenerowanej automatycznie przez VS było
a następnie ręcznie dodałem mój plik spritefont do odpowiedniego folderu
Dziwne jest to, że dodałem zdjęcia w ten sposób i znalazłem się w odpowiednim folderze, ale nie w * .spritefont, musisz ręcznie dodać go w późniejszym folderze, aby dostać się do pracy ..
Mam nadzieję, że to ma sens dla kogoś, ponieważ sprawiło mi to największy ból głowy w ostatnich dniach. Mogłem zapomnieć o kilku krokach i wszystko to może być bezużyteczne, ale mam nadzieję, że złagodzę bóle głowy u niektórych osób
Mam nadzieję, że gra monoGame zostanie zaktualizowana, aby rozwiązać te problemy ...
źródło
Użyłem XNB Buildera, aby ręcznie przekonwertować je na
.xnb
pliki. Wystarczy uruchomić aplikację, wybrać pliki, a przekonwertuje je na pliki XNB, które są gotowe do użycia w MonoGame.źródło