2017-12-27 5 views
1

Ich versuche, ein Programm zu erstellen, das Textur- und Soundinhalte aus einer Datei laden muss, die nicht in der Content-Manager- oder Content.mgcb-Datei in C# mit kompiliert wird MonoGame 3.6. Die Spieler könnten das Verzeichnis finden und die Inhaltsdateien ersetzen, die geladen werden müssen, nachdem das Programm auf ihren Telefonen oder Desktop-Computern installiert wurde. Wie kann ich das machen?Monogame Inhalt laden Ohne Content.mgcb und Content.Load()

Antwort

2

Textures:

  • Texture2D.FromStream
  • laden Texturdaten von einer Quelle (Datei/Netzwerk/etc), die Umstellung auf die format Sie als Array wünschen (das heißt byte[], Color [].). Construct ein neues Texture2D mit den Abmessungen und dem Format der Daten. Laden Sie die Textur mit SetData hoch.

Audio:

  • Song.FromUri
  • SoundEffect.FromStream
  • Last Tondaten von einer Quelle (file/Netzwerk/etc), Extrahieren der Metadaten (Abtastrate/Loop info/etc), dann Umwandlung in PCM. Construct eine neue SoundEffect mit den PCM-Daten und Metadaten.
  • Verwenden Sie ein alternatives Framework für Audio (z. B. Bass (win/osx/linux), FMOD (die meisten Plattformen)).

Fonts:

  • Laden aus einem font bitmap.
  • Schreiben Sie Ihren eigenen Loader und Renderer. Ein solches System verwendet eine Kombination aus einer Zeichensatzverarbeitungsbibliothek (d. H. w/wrapper), einem Packer und einer Layout-Engine. Siehe MonoGames graphics content pipeline und SpriteFont Implementierung.