Monogame.Forms ist die einfachste Art, ein Monogame -Render -Fenster in Ihr Windows -Formulationsprojekt zu integrieren. Es sollte Ihr Leben viel einfacher machen, wenn Sie Ihre eigene Editor -Umgebung erstellen möchten.
Notiz
Tipp
AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; . Wenn Sie die Skalierung Ihrer gesamten Anwendung deaktivieren möchten, müssen Sie eine Manifest-Datei hinzufügen. Wichtig
dotnet add package MonoGame.Forms.DX oder den Paketmanager verwendendotnet new install MonoGame.Forms.Templatesdotnet new mgf -n MyMonoGameFormsProjectdotnet new mgfn -n MyMonoGameFormsProjectdotnet new mgc -na MyMonoGameControldotnet new mgic -na MyInvalidationControlIm Monogame können Sie mit der SpriteBatch einigermaßen auf den Bildschirm ziehen. In monogame.Forms werden Sie dasselbe tun, aber dafür den Herausgeber verwenden.
In den Klassen monogame.Forms.Control heißt dieser Dienst Editor . Um etwas an die SpriteBatch zu ziehen, müssen Sie dies tun:
Editor . spriteBatch . DrawString ();Werfen wir einen Blick auf die endgültige bezeichnetste Klasse:
using Microsoft . Xna . Framework ;
using MonoGame . Forms . Controls ;
namespace nugetTest
{
public class DrawTest : MonoGameControl
{
string WelcomeMessage = "Hello MonoGame.Forms!" ;
protected override void Initialize ()
{
}
protected override void Update ( GameTime gameTime )
{
}
protected override void Draw ()
{
Editor . spriteBatch . Begin ();
Editor . spriteBatch . DrawString ( Editor . Font , WelcomeMessage , new Vector2 (
( Editor . graphics . Viewport . Width / 2 ) - ( Editor . Font . MeasureString ( WelcomeMessage ). X / 2 ),
( Editor . graphics . Viewport . Height / 2 ) - ( Editor . FontHeight / 2 )),
Color . White );
Editor . spriteBatch . End ();
}
}
}Ergebnis:
Es ist ziemlich wie im Monogame.Framework!
Schauen Sie sich die monogame.Forms.plople-Project an, die Teil dieses Repo ist, um mehr darüber zu erfahren, wie Monogame.Forms funktioniert.
Diese bestimmte Steuerklasse muss die update () -Methode nicht überschreiben, da sie manuell aktualisiert wird (von Ihnen!).
Sie müssen lediglich () für jede Änderung, die Sie anzeigen möchten, ungültig () auf einer benutzerdefinierten InvalidationControl anrufen. Nachdem Sie dies aufgerufen haben, verbraucht Ihre Kontrolle keine CPU -Stromversorgung mehr. Dies ist großartig, wenn Sie Vorschau -Steuerelemente für Texturen und ähnliche Dinge erstellen!
Hier sind einige Beispielbilder aus dem Blazor -Zweig: